ES2873230T3 - Sistema de procesamiento de encriptado - Google Patents

Sistema de procesamiento de encriptado Download PDF

Info

Publication number
ES2873230T3
ES2873230T3 ES10766983T ES10766983T ES2873230T3 ES 2873230 T3 ES2873230 T3 ES 2873230T3 ES 10766983 T ES10766983 T ES 10766983T ES 10766983 T ES10766983 T ES 10766983T ES 2873230 T3 ES2873230 T3 ES 2873230T3
Authority
ES
Spain
Prior art keywords
vector
key
formula
base
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES10766983T
Other languages
English (en)
Inventor
Katsuyuki Takashima
Tatsuaki Okamoto
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Nippon Telegraph and Telephone Corp
Original Assignee
Mitsubishi Electric Corp
Nippon Telegraph and Telephone 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 Mitsubishi Electric Corp, Nippon Telegraph and Telephone Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of ES2873230T3 publication Critical patent/ES2873230T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

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

Abstract

Sistema de procesamiento criptográfico (10) que realiza un proceso criptográfico utilizando espacios vectoriales duales de un espacio V y un espacio V* emparejados a través de una operación de emparejamiento, en el que el espacio V* es un espacio vectorial dual del espacio V, en el que los grupos de emparejamiento bilineal (G1, G2, GT, g1, g2, q) son una tupla de tres grupos cíclicos G1, G2 y GT de orden q, g1 es un generador de G1, y g2 es un generador de G2; en el que los grupos de emparejamiento bilineal (G1, G2, GT, g1, g2, q) satisfacen la condición de un emparejamiento bilineal no degenerado computable en tiempo polinómico que se muestra en la fórmula 73: **(Ver fórmula)** en el que para cualquier ζ ε G1, η ε G2, **(Ver fórmula)** y **(Ver fórmula)** en el que los espacios vectoriales N-dimensionales V y V* están construidos por productos directos de G1 y G2: **(Ver fórmula)** en el que un elemento x en el espacio V está representado por un vector N-dimensional **(Ver fórmula)** en el que un elemento y en el espacio V* está representado por un vector N-dimensional **(Ver fórmula)** comprendiendo el sistema de procesamiento criptográfico: un dispositivo de encriptado (200) que, utilizando un dispositivo de procesamiento, genera como vector de cifrado un vector en el espacio V, teniendo el vector información predeterminada incrustada en el mismo; y un dispositivo de desencriptado (300) que, utilizando el dispositivo de procesamiento y utilizando un vector predeterminado en el espacio V* como vector de clave, realiza la operación de emparejamiento sobre el vector de cifrado generado por el dispositivo de encriptado y el vector de clave, para desencriptar el vector de cifrado y extraer información relativa a la información predeterminada, en el que el sistema de procesamiento criptográfico realiza el proceso criptográfico en el espacio V y el espacio V* que son espacios vectoriales N-dimensionales, en el que el dispositivo de encriptado genera como el vector de cifrado un vector N-dimensional χ: = (χ0g1, ..., χN-1g1) en el espacio V, y en el que el dispositivo de desencriptado, usando un vector N-dimensional η: = (η0g2, ..., ηN-1g2) en el espacio V* como vector de clave, realiza la operación de emparejamiento e (χ, η) que se muestra en la fórmula 1: **(Ver fórmula)** en el vector de cifrado χ: = (χ0g1, ..., χN-1g1) y el vector de clave η: = (η0g2, ..., ηN-1g2); en el que el sistema de procesamiento criptográfico realiza el proceso criptográfico en el espacio V y el espacio V* que tienen una base canónica A: = (a0, ..., aN-1) y una base canónica A*: = (a*0, ..., a*N-1) respectivamente, la base canónica A y la base canónica A* satisfacen una condición para una base ortonormal mostrada en la fórmula 2: **(Ver fórmula)** donde si i = j para todo i y j, entonces δi,j = 1 , y si i ≠ j, entonces δi,j; = 0 , y u ≠ 1; en el que el espacio V y el espacio V* tienen la base canónica A: = (ao, ..., aN-1) y la base canónica A*: = (a*0, ..., a*N-1) que tienen mapas de distorsión Φi, j y Φ*i, j se muestran en la fórmula 3 y la fórmula 4 respectivamente: [Fórmula 3] **(Ver fórmula)** [Fórmula 4] **(Ver fórmula)** en el que el dispositivo de encriptado genera como vector de cifrado un vector de una base B construido a partir de la base canónica A del espacio V realizando una operación predeterminada, y en el que el dispositivo de desencriptado utiliza como el vector de clave un vector de base B* construido a partir de la base canónica A* del espacio V* realizando una operación derivada de la operación predeterminada, siendo la base B* y la base B bases ortonormales; en el que la base B es una base B: = (bo, ..., bN-1) construida a partir de la base canónica A mediante la realización de una operación que se muestra en la fórmula 5, y en el que la base B* es una base B*: = (b*0, ..., b*N-1) construida a partir de la base canónica A* realizando una operación que se muestra en la fórmula 6: [Fórmula 5] **(Ver fórmula)** donde [Fórmula 6] **(Ver fórmula)** donde **(Ver fórmula)** donde el dispositivo de encriptado incluye una unidad de configuración de información de transmisión (210) que, usando el dispositivo de procesamiento, genera como un vector de información de transmisión un vector en el que ρ se establece como un coeficiente de un vector de base bn de vectores de base bi (i = 0, ..., N-1) en la base B del espacio V, y una unidad de generación de vectores de cifrado (220) que, utilizando el dispositivo de procesamiento, genera el vector de cifrado, y en el que el dispositivo de desencriptado incluye una unidad de almacenamiento de vectores de claves (320) que almacena, como el vector de clave y en un dispositivo de almacenamiento, un vector en el que se establece un valor predeterminado como un coeficiente de un vector de base predeterminado b*n de vectores de base b*i (i = 0, ..., N-1) en la base B* del espacio V*, y en el que cada una de las informaciones de predicado vi (i = 0, ..., μLv-1) se establece como un coeficiente de cada uno de los vectores de base b*i (i = 0, ..., μLv-1) (μLx >= μLv), y una unidad de operación de emparejamiento (330) que, usando el dispositivo de procesamiento, realiza la operación de emparejamiento en el vector de cifrado generado por la unidad de generación del vector de cifrado y el vector de clave almacenado por la unidad de almacenamiento del vector de clave, y extrae del vector de cifrado un valor relativo al ρ establecido como el coeficiente del vector de base bn; en el que el sistema de procesamiento criptográfico comprende además: un dispositivo de generación de claves (100) que incluye una unidad de generación de vectores de claves (130) que, utilizando el dispositivo de procesamiento, genera como un vector de clave kL, 0 un vector en el que se establece un valor predeterminado como un coeficiente del vector de base predeterminado b*n de vectores de base b*i (i = 0, ..., n-1) en la base B* del espacio V*, y en el que cada una de las informaciones de predicado vi (i = 0, ..., μL-1) se establece como un coeficiente de cada uno de los vectores de base b*i (i = 0, ..., μL-1); en el que el dispositivo de generación de claves comprende además una unidad de almacenamiento de claves maestras (120) que almacena en un dispositivo de almacenamiento la base B* del espacio V* como clave secreta maestra; y en el que la unidad de generación de vectores de claves (130) está configurada para generar, usando el dispositivo de procesamiento, como el vector de clave kL, 0 un vector en el que un valor predeterminado se establece como un coeficiente de un vector de base b*n de vectores de base b*i (i = 0, ..., N-1) en la base B* del espacio V*, y en el que cada una de las informaciones de predicado vi (i = 0, ..., μL-1) se establece como un coeficiente de cada uno de los vectores de base b*i (i = 0, ..., μL-1), siendo la base B* del espacio V* la clave secreta maestra almacenada por la unidad de almacenamiento de claves maestras; en el que μLx<=N; en el que la unidad de configuración de información de transmisión genera el vector de información de transmisión como el vector pv mostrado en la fórmula 11, y en el que la unidad de generación de vectores de cifrado genera un vector de cifrado c añadiendo un vector de información de atributo xv que se muestra en la fórmula 12 al vector de información de transmisión pv que se muestra en la fórmula 11: [Fórmula 11] **(Ver fórmula)** donde ρ: valor predeterminado; [Fórmula 12] **(Ver fórmula)** donde δ1... , δd: valores predeterminados, xi: información de atributo (i = 0, ..., μLx-1), y xi: valor predeterminado (i = μLx,, ..., n-1).

Description

DESCRIPCIÓN
Sistema de procesamiento de encriptado
Campo técnico
La presente invención se refiere a un esquema de mecanismo de encapsulación de clave de predicado jerárquico y a un esquema de encriptado de predicado jerárquico.
Técnica anterior
Se ha propuesto un esquema de encriptado de predicado (PE) (Bibliografía no relacionada con patentes 19). Se ha propuesto la delegación en un esquema de encriptado de predicado (Bibliografía no relacionada con patentes 26). Además, se han propuesto espacios de vectores propios de distorsión (Bibliografía no relacionada con patentes 21).
Lista de citas
Bibliografía no relacionada con patentes
[Bibliografía no relacionada con patentes 1] M. Abe, R. Gennaro, K. Kurosawa y V. Shoup, "Tag-KEM/DEM: A New Framework for Hybrid Encryption and New Analysis of Kurosawa-Desmedt KEM", Eurocrypt, 2005, LNCS 3494, págs. 128-146, 2005.
[Bibliografía no relacionada con patentes 2] D. Boneh y X. Boyen, "Efficient selective-ID secure identity based encryption without random oracles", EUROCRYPT 2004, LNCS, Springer-Verlag, 2004.
[Bibliografía no relacionada con patentes 3] D. Boneh y X. Boyen, "Secure identity based encryption without random oracles", CRYPTO 2004, LNCS, Springer-Verlag, 2004.
[Bibliografía no relacionada con patentes 4] D. Boneh, X. Boyen y E. Goh, "Hierarchical identity based encryption with constant size ciphertext", e Ur OCRYPT 2005, LNCS, Springer-Verlag, págs. 440-456, 2005.
[Bibliografía no relacionada con patentes 5] D. Boneh, X. Boyen y H. Shacham, "Short group signatures", CRYPTO 2004, LNCS 3152, Springer Verlag, págs. 41--55, 2004.
[Bibliografía no relacionada con patentes 6] D. Boneh y M. Franklin, "Identity-based encryption from the Weil pairing", CRYPTO 2001, LNCS 2139, Springer Verlag, págs. 213--229, 2001.
[Bibliografía no relacionada con patentes 7] D. Boneh y J. Katz, "Improved efficiency for cca-secure cryptosystems built using identity based encryption", RSA-CT 2005, LNCS, Springer Verlag, 2005.
[Bibliografía no relacionada con patentes 8] J. Bethencourt, A. Sahai y B. Waters, "Ciphertext-policy attribute-based encryption", Actas del Simposio de IEEE de 2007 sobre Seguridad y Privacidad, 2007.
[Bibliografía no relacionada con patentes 9] D. Boneh y B. Waters, "Conjunctive, subset, and range queries on encrypted data", TCC 2007, LNCS 4392, Springer Verlag, págs. 535--554, 2007.
[Bibliografía no relacionada con patentes 10] X. Boyen y B. Waters, "Anonymous hierarchical identity-based encryption (without random oracles)", CRYPTO 2006, págs. 290-307, 2006.
[Bibliografía no relacionada con patentes 11] R. Canetti, S. Halevi y J. Katz,"Chosen-ciphertext security from identity-based encryption", EUROCRYPT 2004, LNCS, Springer-Verlag, 2004.
[Bibliografía no relacionada con patentes 12] C. Cocks, "An identity based encryption scheme based on quadratic residues", Actas de la 8a Conferencia Internacional de la IMA sobre Criptografía y Codificación, págs. 360--363, Londres, Reino Unido, 2001. Springer-Verlag, 2001.
[Bibliografía no relacionada con patentes 13] C. Gentry, "Practical identity-based encryption without random oracles", EUROCRYPT 2006, LNCS, Springer-Verlag, 2006.
[Bibliografía no relacionada con patentes 14] C. Gentry y A. Silverberg, "Hierarchical ID-based cryptography", ASIACRYPT 2002, LNCS, Springer-Verlag, 2002.
[Bibliografía no relacionada con patentes 15] V. Goyal, O. Pandey, A. Sahai y B. Waters, "Attribute-based encryption for fine-grained access control of encrypted data", ACM-CCCS 2006, LNCS, Springer Verlag, 2006.
[Bibliografía no relacionada con patentes 16] J. Groth y A. Sahai, "Efficient non-interactive proof systems for bilinear groups", EUROCRYPT 2008, LNCS 4965, Springer Verlag, págs. 415--432, 2008.
[Bibliografía no relacionada con patentes 17] J. Horwitz y B. Lynn, "Towards hierarchical identity-based encryption", EUROCRYPT 2002, LNCS, Springer Verlag, 2002.
[Bibliografía no relacionada con patentes 18] J. Katz y B. Waters "Compact signatures for network coding", disponible en IACR ePrint 2008/316.
[Bibliografía no relacionada con patentes 19] J. Katz, A. Sahai y B. Waters "Predicate encryption supporting disjunctions, polynomial equations, and inner products", EUROCRYPT 2008, LNCS 4965, Springer Verlag, págs.
146-162, 2008.
[Bibliografía no relacionada con patentes 20] D. Hofheinz y E. Kiltz, “Secure hybrid encryption from weakened key encapsulation", CRYPTO 2007, LNCS 4622, Springer Verlag, págs. 553-571, 2007.
[Bibliografía no relacionada con patentes 21] T. Okamoto y K. Takashima, "Homomorphic encryption and signatures from vector decomposition", Pairing 2008. LNCS 5209, págs. 57-74. Springer Verlag, 2008.
[Bibliografía no relacionada con patentes 22] R. Ostrovsky, A. Sahai y B. Waters, "Attribute-based encryption with non-monotonic access structures", ACM CCS 2007, 2007.
[Bibliografía no relacionada con patentes 23] M. Pirretti, P. Traynor, P. McDaniel y B. Waters, "Secure attributebased systems", ACM CCS 2006, 2006.
[Bibliografía no relacionada con patentes 24] H. Shacham, "A Cramer-Shoup encryption scheme from the linear assumption and from progressively weaker linear variants", disponible en IACR ePrint Archive, 2007/074, 2007.
[Bibliografía no relacionada con patentes 25] A. Sahai y B. Waters, "Fuzzy identity-based encryption", EUROCRYPT 2005, LNCS, Springer Verlag, 2005.
[Bibliografía no relacionada con patentes 26] E. Shi y B. Waters, "Delegating capability in predicate encryption systems", ICALP 2008, LNCS, Springer Verlag, 2008.
[Bibliografía no relacionada con patentes 27] K. Takashima, "Efficiently computable distortion maps for supersingular curves", ANTS, LNCS 5011, Springer Verlag, págs. 88-101,2008.
Divulgación de la invención
Problema técnico
La Bibliografía no relacionada con patentes 19 no analiza la delegación en el esquema de encriptado de predicado. La Bibliografía no relacionada con patentes 26 analiza la delegación en el esquema de encriptado de predicado, pero el análisis se limita al esquema de encriptado de predicado para una clase de pruebas de igualdad.
La presente invención tiene como objetivo proporcionar un proceso de encriptado de predicado delegable con una amplia gama de aplicaciones, por ejemplo.
Solución al problema
Los problemas anteriores se resuelven mediante el objeto según las reivindicaciones independientes. Un sistema de procesamiento criptográfico según la presente invención realiza un proceso criptográfico usando espacios vectoriales duales de un espacio V y un espacio V* emparejados a través de una operación de emparejamiento. El sistema de procesamiento criptográfico comprende:
un dispositivo de encriptado que, utilizando un dispositivo de procesamiento, genera como vector de cifrado un vector en el espacio V, teniendo el vector información predeterminada incrustada en el mismo; y
un dispositivo de desencriptado que, utilizando el dispositivo de procesamiento y utilizando un vector predeterminado en el espacio V* como un vector de clave, realiza la operación de emparejamiento sobre el vector de cifrado generado por el dispositivo de encriptado y el vector de clave, para desencriptar el vector de cifrado y extraer información relativa a la información predeterminada.
Efectos ventajosos de la invención
Un sistema criptográfico según esta invención puede implementar un proceso de encriptado de predicado delegable con una amplia gama de aplicaciones.
Breve descripción de los dibujos
La figura 1 es un diagrama para explicar una noción de "jerárquico";
la figura 2 es un diagrama que muestra estructuras jerárquicas de información de atributo e información de predicado;
la figura 3 es un diagrama que muestra un ejemplo de un esquema de encriptado jerárquico basado en identidad; la figura 4 es un diagrama para explicar una base y un vector de base;
la figura 5 es un diagrama para explicar un método para implementar una estructura jerárquica en un espacio vectorial;
la figura 6 es un diagrama de configuración de un sistema de procesamiento criptográfico 10;
la figura 7 es un diagrama de flujo que muestra las operaciones de un dispositivo de generación de claves 100, un dispositivo de encriptado de primer nivel 200 y un dispositivo de desencriptado de primer nivel 300 del sistema de procesamiento criptográfico 10;
la figura 8 es un diagrama de flujo que muestra las operaciones de un dispositivo de delegación de claves de L-ésimo nivel 400, un dispositivo de encriptado de (L+1)-ésimo nivel 200 y un dispositivo de desencriptado de (L+1)-ésimo nivel 300 del sistema de procesamiento criptográfico 10;
la figura 9 es un diagrama para explicar un método de cambio de base;
la figura 10 es un diagrama de bloques funcional que muestra funciones del sistema de procesamiento criptográfico 10 según una segunda realización;
la figura 11 es un diagrama de flujo que muestra las operaciones del dispositivo de generación de claves 100; la figura 12 es un diagrama de flujo que muestra las operaciones del dispositivo de encriptado 200;
la figura 13 es un diagrama de flujo que muestra las operaciones del dispositivo de desencriptado 300;
la figura 14 es un diagrama de flujo que muestra las operaciones del dispositivo de delegación de claves 400; la figura 15 es un diagrama conceptual que muestra una estructura de una base de espacios vectoriales de distorsión dual según la segunda realización;
la figura 16 es un diagrama para explicar una operación de emparejamiento en (S502);
la figura 17 es un diagrama para explicar que una clave de sesión K no puede calcularse mediante una clave de nivel inferior;
la figura 18 es un diagrama para explicar que la clave de sesión K puede calcularse mediante una clave de nivel superior;
la figura 19 es un diagrama de bloques funcional que muestra funciones del sistema de procesamiento criptográfico 10 que implementa el encriptado de predicado jerárquico;
la figura 20 es un diagrama de flujo que muestra las operaciones del dispositivo de encriptado 200 mostrado en la figura 19;
la figura 21 es un diagrama de flujo que muestra las operaciones del dispositivo de desencriptado 300 mostrado en la figura 19;
la figura 22 es un diagrama de bloques funcional que muestra funciones del sistema de procesamiento criptográfico 10 según una cuarta realización;
la figura 23 es un diagrama de flujo que muestra las operaciones del dispositivo de encriptado 200;
la figura 24 es un diagrama de flujo que muestra las operaciones del dispositivo de desencriptado 300; la figura 25 es un diagrama conceptual que muestra una estructura de una base de espacios vectoriales de distorsión dual según la cuarta realización;
la figura 26 es un diagrama (1) para explicar n copias de espacios vectoriales;
la figura 27 es un diagrama (2) para explicar n copias de espacios vectoriales;
la figura 28 es un diagrama de bloques funcional que muestra funciones del sistema de procesamiento criptográfico 10 según una sexta realización;
la figura 29 es un diagrama de flujo que muestra las operaciones del dispositivo de generación de claves 100; la figura 30 es un diagrama de flujo que muestra las operaciones del dispositivo de encriptado 200;
la figura 31 es un diagrama de flujo que muestra las operaciones del dispositivo de desencriptado 300;
la figura 32 es un diagrama de flujo que muestra las operaciones del dispositivo de delegación de claves 400; la figura 33 es un diagrama de bloques funcional que muestra funciones del sistema de procesamiento criptográfico 10 según una séptima realización;
la figura 34 es un diagrama de flujo que muestra las operaciones del dispositivo de encriptado 200;
la figura 35 es un diagrama de flujo que muestra las operaciones del dispositivo de desencriptado 300; y la figura 36 es un diagrama que muestra una configuración de hardware de ejemplo del dispositivo de generación de claves 100, el dispositivo de encriptado 200, el dispositivo de desencriptado 300 y el dispositivo de delegación de claves 400.
Descripción de realizaciones
Se describirán ahora realizaciones de la invención con referencia a los dibujos.
En la siguiente descripción, un dispositivo de procesamiento es una CPU 911 o similar que se describirá más adelante. Un dispositivo de almacenamiento es una ROM 913, una RAM 914, un disco magnético 920 o similar que se describirá más adelante. Un dispositivo de comunicación es una placa de comunicación 915 o similar que se describirá más adelante. Un dispositivo de entrada es un teclado 902, la placa de comunicación 915 o similar que se describirá más adelante. Un dispositivo de salida es la RAM 914, el disco magnético 920, la placa de comunicación 915, un LCD 901 o similar que se describirá más adelante. Es decir, el dispositivo de procesamiento, el dispositivo de almacenamiento, el dispositivo de comunicación, el dispositivo de entrada y el dispositivo de salida son hardware.
Se describirán las notaciones que se utilizarán en la siguiente descripción.
Cuando A es una variable o distribución aleatoria, la fórmula 43 indica que y se selecciona aleatoriamente a partir de A según la distribución de A.
[Fórmula 43]
y< --- R ----- A .
Cuando A es un conjunto, la fórmula 44 indica que y se selecciona uniformemente a partir de A.
[Fórmula 44]
u ,
y < ------------a
La fórmula 45 indica que y se establece, define o sustituye por z.
[Fórmula 45]
y := z
Cuando a es un valor fijo, la fórmula 46 indica que una máquina (algoritmo) A genera a en una entrada x.
[Fórmula 46]
A(x) ^ a
Por ejemplo,
Figure imgf000006_0001
Un símbolo vectorial indica una representación vectorial sobre un campo finito Fq, es decir, la fórmula 47.
[Fórmula 47]
X indica
Figure imgf000006_0002
La fórmula 48 indica el producto interno de dos vectores x ^ y v ^ que se muestra en la fórmula 49, y la fórmula 50 muestra este producto interno.
[Fórmula 48]
X -V
[Fórmula 49]
Figure imgf000006_0003
[Fórmula 50]
Figure imgf000006_0004
0^ indica un vector cero en un campo finito Fqn para cualquier n.
XT indica la transpuesta de una matriz X.
La fórmula 51 indica que xi,j se establece mediante la entrada (i, j)-ésima de la matriz X.
[Fórmula 51]
(xv b x
En la siguiente descripción, un proceso criptográfico incluirá un proceso de encriptado, un proceso de desencriptado y un proceso de generación de claves, y también incluirá un proceso de encapsulación de claves.
Primera realización
En esta realización, se describirán los conceptos básicos para implementar un "esquema de mecanismo de encapsulación de clave de predicado jerárquico (HPKEM)" y un "esquema de encriptado de predicado jerárquico (HPE)" que se analizarán en realizaciones posteriores, junto con las construcciones básicas de esquemas HPKEM y HPE.
En primer lugar, se describirá una noción de un "esquema HPE (HPKEM) para predicados de productos internos", que es un tipo de esquemas HPKEM y HPE. Los esquemas HPKEM y HPE que se analizarán en las siguientes realizaciones son esquemas HPKEM y HPE para predicados de productos internos. Para describir la noción del esquema HPE para predicados de productos internos, se describirá primero una noción de "jerárquico". A continuación, se describirá el "esquema de encriptado de predicados (PE) para predicados de productos internos".
Luego, se describirá el "esquema HPE (HPKEM) para predicados de productos internos", que es el esquema PE para predicados de productos internos con la noción de "jerárquico". Además, para reforzar la comprensión del esquema HPE para los predicados de productos internos, se describirá un ejemplo de aplicación del esquema HPE para los predicados de productos internos.
En segundo lugar, se describirá un esquema HPE para predicados de productos internos en un espacio vectorial. En esta y posteriores realizaciones, los esquemas HPKEm y HPE se implementan en un espacio vectorial.
En tercer lugar, se describirán las construcciones básicas de los "esquemas HPKEM y HPE" según esta y posteriores realizaciones, junto con un esquema de un "sistema de procesamiento criptográfico 10" que implementa los esquemas HPKEM y HPE.
En cuarto lugar, se describirán los conceptos para implementar los esquemas HPKEM y HPE. Los grupos de emparejamiento bilineal se describirán primero. Luego, utilizando los grupos de emparejamiento bilineal, se describirán otros conceptos en las siguientes seis etapas (1) a (6):
(1) extensión de los espacios V y V* del emparejamiento unidimensional "G1 x G2 ^ Gt" a espacios de dimensiones superiores;
(2) bases duales canónicas A y A*;
(3) mapeo lineal eficiente usando mapas de distorsión;
(4) un método para generar un par de claves (B, B*) mediante un cambio de base;
(5) problemas computacionalmente intratables sobre (V, B) y (V, B*) para aplicaciones criptográficas; y
(6) esquema PE para predicados de productos internos utilizando un par de claves (B, B*).
En quinto lugar, se describirán los "espacios vectoriales de distorsión dual (DDVS)" que tienen estructuras matemáticas ricas para implementar los esquemas HPKEM y HPE.
En sexto lugar, basándose en las descripciones anteriores, se describirá brevemente un método para implementar los esquemas HPKEM y HPE que se describirán en detalle en las siguientes realizaciones.
1. Esquema HPE para predicados de productos internos
1-1. Noción de jerárquico
Se describirá la noción de "jerárquico" en los esquemas HPKEM y HPE que se describirán en esta y posteriores realizaciones.
La figura 1 es un diagrama para explicar la noción de "jerárquico".
El término "jerárquico" en los esquemas HPKEM y HPE significa tener un sistema que es capaz de delegación (un sistema de delegación). La delegación significa que un usuario que tiene una clave de nivel superior genera una clave de nivel inferior con capacidades más restringidas que la clave del usuario (nivel superior).
En la figura 1, una raíz (un dispositivo de generación de claves) genera claves secretas para usuarios de primer nivel (nivel 1) mediante el uso de una clave secreta maestra. Es decir, la raíz genera las claves 1, 2 y 3 para los usuarios de primer nivel 1, 2 y 3, respectivamente. Luego, utilizando la clave 1, por ejemplo, el usuario 1 puede generar las claves 11, 12 y 13 para los usuarios 11, 12 y 13, respectivamente, que son usuarios de nivel inferior (segundo) del usuario 1. Aquí, las claves 11, 12 y 13 que poseen los usuarios 11, 12 y 13 tienen capacidades más restringidas que la clave 1 que posee el usuario 1. Las capacidades restringidas significan que los textos cifrados que pueden ser desencriptados por esa clave secreta están restringidos. Es decir, una clave secreta de nivel inferior solo puede desencriptar algunos de los textos cifrados que pueden ser desencriptados por una clave secreta de nivel superior. Esto significa que las claves 11, 12 y 13 que poseen los usuarios 11, 12 y 13 solo pueden desencriptar algunos de los textos cifrados que pueden ser desencriptados por la clave 1 que posee el usuario 1. Normalmente, las claves 11, 12 y 13 pueden desencriptar respectivamente diferentes textos cifrados. Por otro lado, un texto cifrado que puede ser desencriptado por las claves 11, 12 o 13 puede ser desencriptado por la clave 1.
1-2. Esquema PE para predicados de productos internos
Ahora se describirá un "esquema PE para predicados de productos internos".
Un esquema PE es un esquema criptográfico en el que se puede desencriptar un texto cifrado si un resultado de la introducción de la información de atributo x para predicar la información fv es 1 (verdadero) (fv(x) = 1). Normalmente, la información de atributo x está incrustada en un texto cifrado y la información de predicado fv está incrustada en una clave secreta. Es decir, en el esquema PE, un texto cifrado c encriptado en base a la información de atributo x es desencriptado por una clave secreta SKf generada en base a la información del predicado fv. El esquema PE puede describirse como un esquema criptográfico en el que, por ejemplo, la información de predicado fv es una expresión condicional y la información de atributo x es información que se introducirá en la expresión condicional, y un texto cifrado se puede desencriptar si la información de entrada (información de atributo x) satisface la expresión condicional (información de predicado fv) (fv(x) = 1).
El esquema PE se analiza en detalle en la Bibliografía no relacionada con patentes 19.
El esquema PE para predicados de productos internos es un tipo de esquema PE en el que fv(x) = 1 si el producto interno de la información de atributo x y la información de predicado fv es un valor predeterminado. Es decir, un texto cifrado c encriptado por la información de atributo x puede ser desencriptado por una clave secreta SKf generada en base a la información del predicado fv si y solo si el producto interno de la información del atributo x y la información del predicado fv es un valor predeterminado. En la siguiente descripción, se supone que fv(x) = 1 si el producto interno de la información del atributo x y la información del predicado fv es 0.
1-3. Esquema HPE para predicados de productos internos
El esquema HPE (HPKEM) para predicados de productos internos es un tipo de "esquema PE para predicados de productos internos" con la noción de "jerárquico" descrita anteriormente. Es decir, el esquema HPE (HPKEM) para predicados de productos internos es un tipo de esquema PE para predicados de productos internos con el sistema de delegación.
En el esquema HPE para predicados de productos internos, la información de atributo y la información de predicado tienen estructuras jerárquicas, para agregar el sistema de delegación al esquema PE para los predicados de productos internos.
La figura 2 es un diagrama que muestra estructuras jerárquicas de información de atributo e información de predicado.
En la figura 2, la información de atributo y la información de predicado con los mismos números de referencia se corresponden entre sí (es decir, su producto interno es 0). Es decir, el producto interno de un atributo 1 y un predicado 1 es 0, el producto interno de un atributo 11 y un predicado 11 es 0, el producto interno de un atributo 12 y un predicado 12 es 0, y el producto interno de un atributo 13 y un predicado 13 es 0. Esto significa que un texto cifrado c1 encriptado por el atributo 1 puede ser desencriptado por una clave secreta k1 generada en base al predicado 1. Un texto cifrado c11 encriptado por el atributo 11 puede ser desencriptado por una clave secreta k11 generada en base al predicado 11. Lo mismo puede decirse del atributo 12 y del predicado 12, así como del atributo 13 y del predicado 13.
Como se describió anteriormente, el esquema HPE para predicados de productos internos tiene el sistema de delegación. Por lo tanto, la clave secreta k11 se puede generar basándose en el predicado 11 y la clave secreta k1 generarse basándose en el predicado 1. Es decir, un usuario que tiene la clave secreta de nivel superior k1 puede generar su clave secreta de nivel inferior k11 a partir de la clave secreta k1 y del predicado de nivel inferior 11. Asimismo, se puede generar una clave secreta k12 a partir de la clave secreta k1 y del predicado 12, y se puede generar una clave secreta k13 a partir de la clave secreta k1 y del predicado 13.
Un texto cifrado encriptado por una clave (una clave pública) correspondiente a una clave secreta de nivel inferior puede ser desencriptado por una clave secreta de nivel superior. Por otro lado, un texto cifrado encriptado por una clave (una clave pública) correspondiente a una clave secreta de nivel superior no puede ser desencriptado por una clave secreta de nivel inferior. Es decir, los textos cifrados c11, c12 y c13 encriptados por los atributos 11, 12 y 13, respectivamente, pueden ser desencriptados por la clave secreta k1 generada en base al predicado 1. Por otro lado, el texto cifrado c1 encriptado por el atributo 1 no puede ser desencriptado por las claves secretas k11, k12 y k13 generadas en base a los predicados 11, 12 y 13, respectivamente. Es decir, el producto interno del atributo 11, 12 o 13 y del predicado 1 es 0. Por otro lado, el producto interno del atributo 1 y del predicado 11, 12 o 13 no es 0.
1-4. Un ejemplo de aplicación del esquema HPE para predicados de productos internos
La figura 3 es un diagrama que muestra un ejemplo de un esquema de encriptado basado en identidad jerárquica (HIBE) que es un ejemplo de aplicación del esquema HPE para predicados de productos internos que se describirán más adelante. El esquema HIBE es un proceso criptográfico en el que la noción de jerárquico se aplica a un esquema de encriptado basado en identidad (IBE). El esquema IBE es un tipo de esquema PE, es decir, un esquema PE coincidente, que permite desencriptar un texto cifrado si un ID incluido en el texto cifrado coincide con un ID incluido en una clave secreta.
En el ejemplo mostrado en la figura 3, basado en una clave secreta maestra sk y un ID "A" de la Compañía A, una raíz (un dispositivo de generación de claves) genera una clave secreta (una clave A) correspondiente al ID "A". Por ejemplo, basándose en la clave A y el ID de cada división, un administrador de seguridad de la Compañía A genera una clave secreta correspondiente a ese ID. Por ejemplo, el administrador de seguridad genera una clave secreta (una clave 1) correspondiente a un ID "A-1" de una división de ventas. Luego, basándose en la clave secreta de cada división y el ID de cada unidad que pertenece a esa división, por ejemplo, un administrador de cada división genera una clave secreta correspondiente a ese ID. Por ejemplo, un administrador de la división de ventas genera una clave secreta (una clave 11) correspondiente a un ID "A-11" de una unidad de ventas 1.
En este caso, un texto cifrado encriptado por el ID "A-11" de la unidad de ventas 1 puede ser desencriptado por la clave 11 que es la clave secreta correspondiente al ID "A-11" de la unidad de ventas 1. Sin embargo, un texto cifrado encriptado por el ID de una unidad de ventas 2 o una unidad de ventas 3 no puede ser desencriptado por la clave 11. Además, un texto cifrado encriptado por el ID de la división de ventas no puede ser desencriptado por la clave 11.
Un texto cifrado encriptado por el ID "A-1" de la división de ventas puede ser desencriptado por la clave 1 que es la clave secreta correspondiente al ID "A-1" de la división de ventas. Además, un texto cifrado encriptado por el ID de una unidad perteneciente a la división de ventas puede ser desencriptado por la clave 1. Es decir, un texto cifrado encriptado por el ID de la unidad de ventas 1, 2 o 3 puede ser desencriptado por la clave 1. Sin embargo, un texto cifrado encriptado por el ID de una división de fabricación (ID: A-2) o una división de personal (ID: A-3) no puede ser desencriptado por la clave 1. Además, un texto cifrado encriptado por el ID de la Compañía A no puede ser desencriptado por la clave 1.
Un texto cifrado con el ID "A" de la Compañía A puede ser desencriptado por la clave A, que es la clave secreta correspondiente al ID "A" de la Compañía A. Además, un texto cifrado encriptado por el ID de cada división perteneciente a la Compañía A o el ID de una unidad perteneciente a cada división puede ser desencriptado por la clave A.
Son posibles diversas aplicaciones distintas del esquema IBE. En particular, los procesos criptográficos que se describirán más adelante no se limitan a una clase de pruebas de igualdad, por lo que pueden aplicarse a un gran número de aplicaciones. Por ejemplo, los procesos criptográficos también se pueden adaptar para otros tipos de esquema PE para predicados de productos internos, tal como un esquema de encriptado de búsqueda, lo que hace posible implementar aplicaciones que no son posibles con un esquema PE de la técnica anterior con el sistema de delegación, tal como limitar un intervalo de búsqueda en cada nivel mediante el uso de una expresión condicional tal como Y u O.
Es decir, los esquemas HPKEM y HPE que se describirán en las siguientes realizaciones se pueden aplicar a una amplia variedad de aplicaciones tales como esquemas IBE y de encriptado de búsqueda.
2. Esquema HPE para predicados de productos internos en un espacio vectorial
Los esquemas HPKEM y HPE se implementan en espacios vectoriales de alta dimensión, denominados espacios vectoriales de distorsión dual (DDVS), que se describirán más adelante. Por lo tanto, se describirá un esquema HPE para predicados de productos internos en un espacio vectorial.
En primer lugar, se explicarán brevemente una "base" y un "vector de base" que se utilizarán para explicar un espacio vectorial.
La figura 4 es un diagrama para explicar la base y el vector de base.
La figura 4 muestra un vector v de un espacio vectorial bidimensional. El vector v es c0a0 + cia1. Además, el vector v es y0b0 + y1 b1. Aquí, a0 y a1 se denominan vectores de base en una base A, y se representan como base A: = (a0 , a1). b0 y b1 se denominan vectores de base en una base B, y se representan como base B: = (b0b1). c0 , c1, y0 y y1 son coeficientes de los respectivos vectores de base. La figura 4 muestra un espacio vectorial bidimensional, de modo que hay dos vectores de base en cada base. En un espacio vectorial N-dimensional, hay un número N de vectores de base en cada base.
Ahora se describirá un esquema PE para predicados de productos internos en un espacio vectorial.
Como se describió anteriormente, el esquema PE para predicados de productos internos es un tipo de esquema PE en el que fv(x) = 1 si el producto interno de la información del atributo x y la información del predicado fv es un valor predeterminado (0 en este caso). Cuando la información de atributo x y la información de predicado fv son vectores, es decir, un vector de atributo x ^ y un vector de predicado v^, su predicado de productos internos se define como se muestra en la fórmula 52.
[Fórmula 52]
Figure imgf000010_0001
entonces
/ v ( í ) = 1
y si
Figure imgf000010_0002
entonces
Figure imgf000010_0003
donde
X = (X0,...,Xn-1)
V =(V0,..., Vn-1).
Es decir, es un tipo de esquema PE en el que un resultado de la introducción de la información de atributo x en la información de predicado fv es 1 (verdadero) si el producto interno del vector de atributo x ^ y el vector de predicado v^ (es decir, la suma de productos internos en forma de elementos) es 0, y es el resultado de introducir la información del atributo x en la información del predicado fv es 0 (falso) si el producto interno del vector de atributo x ^ y el vector de predicado v ^ no es 0.
Ahora se describirá un método para implementar una estructura jerárquica en un espacio vectorial.
La figura 5 es un diagrama para explicar este método para implementar una estructura jerárquica en un espacio vectorial.
Aquí se supone que el espacio vectorial es un espacio vectorial de alta dimensión (N-dimensional). Es decir, existe un número N de vectores de base ci (i = 0, ..., N-1) en una base C predeterminada del espacio vectorial.
Un número n de vectores de base (vectores de base ci (i = 0, ..., n-1) de los números N de vectores básicos se utilizan para representar la estructura jerárquica. Los vectores de base ci (i = 0, ..., n-1) se dividen en un número d de grupos, es decir, vectores de base ci (i = 0, ..., ^ 1- 1 ), vectores de base ci (i = ^ 1, ..., ^2-1 ), ... y vectores de base ci (i = pd-1, ..., n-1), donde d indica una profundidad de jerarquía.
Entonces, un número de vectores de base c1 (i = 0, ..., ^1-1) se asignan para representar información de atributo e información de predicado del primer nivel. Un número (^2-^ 1) de vectores de base ci (i = ^ 1, ..., ^2-1) se asignan para representar información de atributo e información de predicado del segundo nivel. Asimismo, un número (^d-^d-1) de vectores de base ci (i = ^d-1, ..., ^d-1 (= n-1)) se asignan para representar información de atributo e información de predicado del nivel d-ésimo.
Para generar un texto cifrado mediante la información de atributo de L-ésimo nivel, no solo se utiliza información de atributo de L-ésimo nivel, sino también de primer a L-ésimo nivel para generar un texto cifrado. Asimismo, para generar una clave secreta mediante información de predicado de L-ésimo nivel, no solo se utiliza información de predicado de L-ésimo nivel, sino también de primer a L-ésimo nivel para generar una clave secreta. Es decir, para generar un texto cifrado por la información de atributo de L-ésimo nivel, o para generar una clave secreta por la información de predicado de L-ésimo nivel, se usan un número ^l de vectores de base ci (i = 0, ..., ^l-1) asignados a los niveles primero a L-ésimo. Por ejemplo, para generar un texto cifrado por información de atributo de tercer nivel, un número ^3 número de vectores de base ci (i = 0, ..., ^3-1) asignados a del primer al tercer nivel se utilizan para generar un texto cifrado, de modo que se refleja la información de atributo del primer al tercer nivel. Asimismo, para generar una clave secreta mediante información de predicado de tercer nivel, el número ^3 de vectores de base ci (i = 0, ..., ^3-1) asignados a del primer al tercer nivel se utilizan para generar una clave secreta, de modo que se refleja la información del predicado del primer al tercer nivel. Es decir, la información de atributo o la información de predicado que se utilizará en un nivel inferior incluye información de atributo o información de predicado que se utilizará en un nivel superior. De esta manera, la información de atributo y la información de predicado tienen, cada una, una estructura jerárquica. Luego, mediante el uso de estructuras jerárquicas de información de atributos e información de predicado, se incorpora un sistema de delegación en el esquema PE para los predicados de productos internos.
En la siguiente descripción, un formato de jerarquía g ^ se utiliza para indicar una estructura jerárquica de un espacio vectorial. El formato de jerarquía g^ se muestra en la fórmula 53.
[Fórmula 53]
Figure imgf000011_0001
donde
MO = 0 < r t < A 2 < " '< / “ </ = » •
Es decir, el formato de jerarquía g^ tiene información n que indica el número de vectores de base (el número de dimensiones) asignados para representar la estructura jerárquica, información d que indica la profundidad de la jerarquía e información gi, ..., gd que indican los vectores de base asignados a cada nivel.
Ahora se describirá el esquema HPE para predicados de productos internos en un espacio vectorial.
Primero se describirá un predicado de productos internos de un espacio en cada nivel. Un espacio en cada nivel es un espacio asignado para representar información de atributo e información de predicado de cada nivel. Es decir, un espacio en el nivel j-ésimo es un espacio representado por vectores de base ci (i = gj-1, ..., gj).
Permítase que un espacio de atributo Xi (i = 1, ..., d) sea un espacio asignado para representar información de atributo de i-ésimo nivel. Asimismo, permítase que un espacio de predicado Fi (i = 1, ..., d) sea un espacio asignado para representar información de predicado de i-ésimo nivel. Es decir, el espacio de atributo Xi es un espacio de información de atributo representado por vectores de base Oj (j = gi-1, ..., gi) sobre una base predeterminada X. Asimismo, el espacio de predicado Fi es un espacio de información de predicado representado por vectores de base f¡ (j = gi-1, ..., gi) en una base predeterminada F. En otras palabras, el espacio de atributo X 1 es un espacio de información de atributo representado por vectores de base (j = 0, ..., g1- 1 ) y un espacio de atributo X2 es un espacio de información de atributo representado por vectores de base (j = g1, ..., g2-1). Lo mismo puede decirse del espacio de predicado Fi.
En otras palabras, el espacio de atributo Xi (i = 1, .., d) y el espacio de predicado Fi (i = 1, ..., d) son, respectivamente, un conjunto de información de atributo y un conjunto de información de predicado que se muestran en la fórmula 54.
[Fórmula 54]
Figure imgf000011_0002
/ ¡ - { / p J v ^ F ^ - M - A j o } } ( < = W )
Luego, el predicado de productos internos se define para cada espacio de atributo Xi (i = 1, ..., d) como se muestra en la fórmula 55.
[Fórmula 55]
1
Figure imgf000011_0003
.
donde
Figure imgf000012_0001
Es decir, en un espacio en cada nivel, el resultado de la introducción de la información del atributo x en la información del predicado fv es 1 (verdadero) si el producto interno del vector de atributo x ^ y el vector de predicado v^ es 0. En otras palabras, un resultado de la introducción de la información del atributo x en la información del predicado fv es 1 (verdadero) si el producto interno del vector de atributo x ^ de un nivel dado y el vector de predicado v ^ del mismo nivel es 0.
Ahora se describirá un predicado de productos internos en un espacio jerárquico. Un espacio jerárquico es un espacio que también incluye espacios asignados para representar información de atributo e información de predicado de niveles superiores. En otras palabras, un espacio jerárquico de nivel j es un espacio representado por vectores de base ci (i = 0, ..., pj).
Es decir, un espacio de atributo jerárquico X y un espacio de predicado jerárquico F son espacios que se muestran respectivamente en la fórmula 56.
[Fórmula 56]
5 > U í = i ( s i * - x £ i )
Figure imgf000012_0002
Aquí, las uniones del espacio de atributo jerárquico X y el espacio de predicado jerárquico F que se muestran en la fórmula 56 son uniones disjuntas. La información de predicado jerárquico que se muestra en la fórmula 58 correspondiente a la información de atributo jerárquico que se muestra en la fórmula 57 se define como se muestra en la fórmula 59.
[Fórmula 57]
Figure imgf000012_0003
[Fórmula 58]
Figure imgf000012_0004
[Fórmula 59]
Figure imgf000012_0005
Es decir, el esquema HPE para predicados de productos internos en un espacio vectorial es un tipo de esquema PE en el que el resultado de la introducción de la información de atributo jerárquico que se muestra en la fórmula 57 en la información de predicado jerárquico que se muestra en la fórmula 58 es 1 (verdadero) si se cumplen las dos condiciones siguientes: (1) el nivel Lv del vector de predicado jerárquico v^ es igual o superior al nivel Lx del vector de atributo jerárquico x^, y (2) el producto interno del vector de atributo x ^ del espacio de atributos Xi (i = 1, ..., Lv) y el vector de predicado v ^ de cada espacio de predicado Fi (i = 1, ..., Lv) es 0.
3. Construcciones de esquemas HPKEM y HPE
3-1. Esquema HPKEM
Se describirá brevemente una construcción del esquema HPKEM.
El esquema HPKEM incluye cinco algoritmos probabilísticos de tiempo polinomial: Setup, GenKey, Enc, Dec y DelegateL (L = 1, ..., d-1).
Setup
El algoritmo Setup toma como entrada un parámetro de seguridad 1A y un formato de jerarquía j^ , y genera una clave pública maestra pk y una clave secreta maestra sk. La clave secreta maestra sk es una clave de nivel superior.
GenKey
El algoritmo GenKey toma como entrada la clave pública maestra pk, la clave secreta maestra sk y un vector de predicado v^ 1 (el vector de predicado v ^ 1 simplemente se puede indicar como v ^ i) que se muestra en la fórmula 60 y genera una clave secreta de primer nivel que se muestra en la fórmula 61.
[Fórmula 60]
Figure imgf000013_0001
[Fórmula 61]
Figure imgf000013_0002
Enc
El algoritmo Enc toma como entrada la clave pública maestra pk y los vectores de atributos x^i (i = 1, ..., Lx) (1 á Lx á d), y genera un texto cifrado c y una clave de sesión K. Es decir, el algoritmo Enc genera el texto cifrado c encriptado por los vectores de atributo x^¡ (i = 1, ..., Lx) (1 á Lx á d) incrustando información predeterminada (p) y la clave de sesión K generada a partir de la información predeterminada (p).
Dec
El algoritmo Dec toma como entrada la clave pública maestra pk, una clave secreta de Lv-ésimo nivel (1 á Lv á d) que se muestra en la fórmula 62, y el texto cifrado c, y genera o bien la clave de sesión K bien o un símbolo distinguido ±. El símbolo distinguido ± es información que indica un error de desencriptado. Es decir, el algoritmo Dec descifra el texto cifrado c por la clave secreta de Lv-ésimo nivel, extrae la información sobre la información predeterminada (p), y genera la clave de sesión K. En caso de fallo de desencriptado, el algoritmo Dec genera el símbolo distinguido ±.
[Fórmula 62]
Figure imgf000013_0003
DelegateL
El algoritmo DelegateL toma como entrada la clave pública maestra pk, una clave secreta de L-ésimo nivel que se muestra en la fórmula 63 y un vector de predicado de (L+1)-ésimo nivel v^ l+1 (el vector de predicado v^ l+1 simplemente se puede indicar como v^L +1) que se muestra en la fórmula 64, y genera una clave secreta de (L+1)-ésimo nivel que se muestra en la fórmula 65. Es decir, el algoritmo DelegateL genera una clave secreta de nivel inferior.
[Fórmula 63]
Figure imgf000013_0004
[Fórmula 64]
Figure imgf000014_0001
[Fórmula 65]
sk/ -•>v,¿, J ,
Es decir, la clave secreta de Lv-ésimo nivel se calcula por un algoritmo DeriveLv, que se muestra en la fórmula 66, que utiliza los algoritmos GenKey y DelegateL.
[Fórmula 66]
Derive4 (pk,Sk(vl j .. ) ) :
sk- <r----- - GenKey (p k ,sk ,^ )
Parar
reto
Figure imgf000014_0002
3-2. Esquema HPE
Se describirá un esquema del esquema HPE
Al igual que con el esquema HPKEM, el esquema HPE incluye cinco algoritmos probabilísticos de tiempo polinomial: Setup, GenKey, Enc, Dec y DelegateL (L = 1, ..., d-1).
Setup
Al igual que con el esquema HPKEM, el algoritmo de configuración toma como entrada un parámetro de seguridad 1a y un formato de jerarquía pm, y genera una clave pública maestra pk y una clave secreta maestra sk.
GenKey
Al igual que con el esquema HPKEM, el algoritmo GenKey toma como entrada la clave pública maestra pk, la clave secreta maestra sk y un vector de predicado v^ 1 que se muestra en la fórmula 67, y genera una clave secreta de primer nivel que se muestra en la fórmula 68.
[Fórmula 67]
Figure imgf000014_0003
[Fórmula 68]
Figure imgf000014_0004
Enc
El algoritmo Enc toma como entrada la clave pública maestra pk, vectores de atributos x^¡ (i = 1, ..., Lx) (1 á Lx á d) y un mensaje m y genera un texto cifrado c. Es decir, el algoritmo Enc genera el texto cifrado c encriptado por los vectores de atributos x^¡ (i = 1, ..., Lx) (1 á Lx á d) incrustando el mensaje m.
Dec
El algoritmo Dec toma como entrada la clave pública maestra pk, una clave secreta de Lv-ésimo nivel (1 á Lv á d) que se muestra en la fórmula 69 y el texto cifrado c y genera el mensaje m o un símbolo distinguido ±. El símbolo distinguido ± es información que indica un error de desencriptado. Es decir, el algoritmo Dec descifra el texto cifrado c por la clave secreta de Lv-ésimo nivel y extrae el mensaje m. En caso de fallo de desencriptado, el algoritmo Dec genera el símbolo distinguido 1.
[Fórmula 69]
Figure imgf000015_0001
DelegateL
Al igual que con el esquema HPKEM, DelegateL toma como entrada la clave pública maestra pk, una clave secreta de L-ésimo nivel que se muestra en la fórmula 70 y un vector de predicado de (L+1)-ésimo nivel v^ l+1 se muestra en la fórmula 71 y genera una clave secreta de (L+1)-ésimo nivel que se muestra en la fórmula 72. Es decir, el algoritmo DelegateL genera una clave secreta de nivel inferior.
[Fórmula 70]
Figure imgf000015_0002
[Fórmula 71]
Figure imgf000015_0003
[Fórmula 72]
sk ( v - > v ¿+t)
La clave secreta de Lv-ésimo nivel se calcula por el algoritmo DeriveLv anterior que se muestra en la fórmula 66, como con el esquema HPKEM.
3-3. Sistema de procesamiento criptográfico 10
Se describirá el sistema de procesamiento criptográfico 10. El sistema de procesamiento criptográfico 10 ejecuta los algoritmos descritos anteriormente de los esquemas HPKEM y HPE.
La figura 6 es un diagrama de configuración del sistema de procesamiento criptográfico 10.
El sistema de procesamiento criptográfico 10 incluye un dispositivo de generación de claves 100, un dispositivo de encriptado 200, un dispositivo de desencriptado 300 y un dispositivo de delegación de claves 400. Aquí, el dispositivo de desencriptado 300 incluye el dispositivo de delegación de claves 400. Como se describió anteriormente, el sistema de procesamiento criptográfico 10 implementa procesos criptográficos jerárquicos, de modo que incluye una pluralidad de dispositivos de encriptado 200, una pluralidad de dispositivos de desencriptado 300 y una pluralidad de dispositivos de delegación de claves 400.
El dispositivo de generación de claves 100 ejecuta los algoritmos Setup y GenKey de los esquemas HPKEM y HPE.
El dispositivo de encriptado 200 ejecuta el algoritmo Enc de los esquemas HPKEM y HPE.
El dispositivo de desencriptado 300 ejecuta el algoritmo Dec de los esquemas HPKEM y HPE.
El dispositivo de delegación de claves 400 ejecuta el algoritmo DelegateL de los esquemas HPKEM y HPE. La figura 7 es un diagrama de flujo que muestra las operaciones del dispositivo de generación de claves 100, un dispositivo de encriptado de primer nivel 200 y un dispositivo de desencriptado de primer nivel 300 del sistema de procesamiento criptográfico 10. Es decir, la figura 7 es un diagrama de flujo que muestra las operaciones desde la generación de claves maestras (una clave pública maestra y una clave secreta maestra) y la generación de una clave secreta de primer nivel para el encriptado y el desencriptado en el primer nivel.
S101: Etapa de generación de claves
El dispositivo de generación de claves 100 ejecuta el algoritmo Setup para generar una clave pública maestra pk y una clave secreta maestra sk. Basándose en la clave pública maestra pk generada, la clave secreta maestra generada sk y un vector de predicado v ^ i (v^i = (v0 , vi) (i = ml-1)) correspondiente a un dispositivo de desencriptado 300 predeterminado (el dispositivo de desencriptado de primer nivel 300), el dispositivo de generación de claves 100 ejecuta el algoritmo GenKey para generar una clave secreta de primer nivel. Entonces, el dispositivo de generación de claves 100 publica (distribuye) la clave pública maestra generada pk y también proporciona secretamente la clave secreta de primer nivel al dispositivo de desencriptado 300 predeterminado. El dispositivo de generación de claves 100 guarda secretamente la clave secreta maestra.
S102: Etapa de encriptado
Basándose en la clave pública maestra pk distribuida por el dispositivo de generación de claves 100 en (S101) y un vector de atributo x ^ 1 (X^1 = (x0 , ..., Xi) (i = ml-1)) del dispositivo de desencriptado 300, el dispositivo de encriptado 200 ejecuta el algoritmo Enc para generar un texto cifrado c. En el caso del esquema HPKEM, el dispositivo de encriptado 200 también genera una clave de sesión K. Entonces, el dispositivo de encriptado 200 transmite el texto cifrado c generado al dispositivo de desencriptado 300 a través de una red o similar. El vector de atributo x ^ 1 puede ser público o puede obtenerse mediante el dispositivo de encriptado 200 del dispositivo de generación de claves 100 o el dispositivo de desencriptado 300.
S103: Etapa de desencriptado
Basándose en la clave pública maestra pk y la clave secreta de primer nivel proporcionada por el dispositivo de generación de claves 100 en (S101), el dispositivo de desencriptado 300 ejecuta el algoritmo Dec para desencriptar el texto cifrado c recibido desde el dispositivo de encriptado 200. Como resultado de desencriptar el texto cifrado c, el dispositivo de desencriptado 300 obtiene la clave de sesión K en el caso del esquema HPKEM u obtiene un mensaje m en el caso del esquema HPE. Si el dispositivo de desencriptado 300 falla al desencriptar el texto cifrado c genera un símbolo distinguido 1.
La figura 8 muestra un diagrama de flujo que muestra las operaciones de un dispositivo de delegación de claves de L-ésimo nivel 400, un dispositivo de encriptado de (L+1)-ésimo nivel 200 y un dispositivo de desencriptado de (L+1)-ésimo nivel 300 del sistema de procesamiento criptográfico 10. Es decir, la figura 8 es un diagrama de flujo que muestra las operaciones desde la generación de una clave secreta de (L+1)-ésimo nivel hasta el encriptado y desencriptado en el (L+1)-ésimo nivel.
S201: Etapa de delegación de claves
Basándose en la clave pública maestra pk distribuida por el dispositivo de generación de claves 100 en (S101), una clave secreta de L-ésimo nivel proporcionada por el dispositivo de generación de claves 100 o un dispositivo de delegación de claves de (L-1)-ésimo nivel 400 y un vector de predicado v^ l+1 (v^ l+1 = (vi, ..., vj) (i = ml, j = ml+1-1)) correspondiente al dispositivo 300 de desencriptado de (L+1)-ésimo nivel, el dispositivo de delegación de L-ésimo nivel 400 (el dispositivo de delegación de claves 400 incluido en el dispositivo de desencriptado 300 de L-ésimo) nivel ejecuta el algoritmo DelegateL para generar la clave secreta de (L+1)-ésimo nivel. Entonces, el dispositivo de delegación de claves 400 de L-ésimo nivel proporciona secretamente la clave secreta generada al dispositivo de desencriptado 300 de (L+1)-ésimo nivel.
S202: Etapa de encriptado
Basándose en la clave pública maestra pk distribuida por el dispositivo de generación de claves 100 en (S101) y los vectores de atributos x ^ 1 a x^ l+1 (x ^¡ (i = 1, ..., L+1) (= (x0 , ..., xi) (i = ml+1-1))) de los dispositivos de desencriptado 300 de primer a (L+1)-ésimo nivel, el dispositivo de encriptado 200 ejecuta el algoritmo Enc para generar un texto cifrado c. En el caso del esquema HPKEM, el dispositivo de encriptado 200 también genera una clave de sesión K. Entonces, el dispositivo de encriptado 200 transmite el texto cifrado c generado al dispositivo de desencriptado 300 a través de una red o similar. Los vectores de atributo x ^ 1 a x^ l+1 (X^¡ (i = 1, ..., L+1)) pueden ser públicos o pueden obtenerse mediante el dispositivo de encriptado 200 desde el dispositivo de generación de claves 100 o el dispositivo de desencriptado 300.
S203: Etapa de desencriptado
Basándose en la clave pública maestra pk distribuida por el dispositivo de generación de claves 100 en (S101) y la clave secreta proporcionada por el dispositivo de delegación de claves de L-ésimo nivel 400 en (S201), el dispositivo de desencriptado 300 ejecuta el algoritmo Dec para desencriptar el texto cifrado c recibido desde el dispositivo de encriptado 200. Como resultado de desencriptar el texto cifrado c, el dispositivo de desencriptado 300 obtiene la clave de sesión K en el caso del esquema HPKEM, u obtiene un mensaje m en el caso del esquema HPE.
4. Conceptos para implementar los esquemas HPKEM y HPE
A continuación, se describirán los conceptos necesarios para implementar cada algoritmo de los esquemas HPKEM y HPE.
4-1. Grupos de emparejamiento bilineal
Se describirán grupos de emparejamiento bilineal (Gi, G2 , Gt, gi, g2 , q).
Los grupos de emparejamiento bilineal (G1, G2 , Gt, g1, g2 , q) son una tupla de tres grupos cíclicos G1, G2 y Gt de orden q. g1 es un generador de G1, y g2 es un generador de G2. Los grupos de emparejamiento bilineal (G1, G2 , Gt, g1, g2 , q) satisfacen la siguiente condición de emparejamiento bilineal no degenerado:
Condición: emparejamiento bilineal no degenerado
Existe un emparejamiento bilineal no degenerado computable en tiempo polinómico que se muestra en la fórmula 73.
[Fórmula 73]
Figure imgf000017_0001
Es decir, para cualquier
Figure imgf000017_0002
Figure imgf000017_0003
e(st,tn) = e(£n)st y
e(g1,g2) * 1.
Esto se denomina emparejamiento bilineal simétrico cuando G1 = G2 (=: G) y emparejamiento bilineal asimétrico cuando G1 * G2. El emparejamiento bilineal simétrico se puede construir usando curvas (hiper) elípticas supersingulares y el emparejamiento bilineal asimétrico se puede construir usando cualquier curva (hiper) elíptica. El emparejamiento bilineal asimétrico se puede construir usando, por ejemplo, curvas elípticas ordinarias.
El emparejamiento bilineal asimétrico se utilizará para el análisis aquí. Es decir, se supone que los grupos de emparejamiento bilineal (G1, G2 , Gt, g1, g2 , q) son grupos de emparejamiento bilineales asimétricos. Se analizará un caso en el que los espacios vectoriales de distorsión dual (DDVS) que se describirán más adelante se construyen utilizando productos directos de grupos de emparejamiento bilineal asimétrico. Como se analizará en las siguientes realizaciones, los DDVS pueden construirse mediante otros métodos, sin limitarse a los productos directos de grupos de emparejamiento bilineal asimétrico.
4-2. (1) Ampliación de los espacios V y V* de emparejamiento unidimensional "Gi x G 2 ^ Gt" a espacios de dimensiones superiores
Un grupo cíclico (espacio unidimensional) se extiende a un espacio (vectorial) de mayor dimensión. Es decir, como se muestra en la fórmula 74, los espacios vectoriales N-dimensionales V y V* se construyen mediante productos directos de G1 y G2.
[Fórmula 74]
N
V í= G j x * • ■ x G j ,
N
V*:= G 2 x - - x G 2
donde un elemento x en el espacio v está representado por un vector N-dimensional como se muestra a continuación.
Figure imgf000018_0001
Asimismo, un elemento y en el espacio V está representado por un vector N-dimensional como se muestra a continuación.
Figure imgf000018_0002
De tenerse en cuenta que
Figure imgf000018_0003
para /= 0,..., A/-1.
Una operación de emparejamiento e en los espacios vectoriales N-dimensionales V y V* se define como se muestra en la fórmula 75.
[Fórmula 75]
Figure imgf000018_0004
Es decir, la operación de emparejamiento e(x, y) en un vector x: = (x0g1, x 1g1, ..., xN-1g1) del espacio vectorial N-dimensional V y un vector y: = (y0g2 , y1g2 , ..., yN-1g2) del espacio vectorial N-dimensional V* se define como el producto de operaciones de emparejamiento en elementos respectivos de los vectores x e y. Entonces, basándose en la condición antes descrita de emparejamiento bilineal no degenerado, la operación de emparejamiento e(x, y) se puede expresar como se muestra en la fórmula 76.
[Fórmula 76]
Figure imgf000018_0005
La notación e en la operación de emparejamiento e se usa para tanto (G1, G2) como (V, V*).
4-3. (2) Bases duales canónicas A y A*
Se describirán las bases canónicas A y A* del espacio vectorial N-dimensional V y V*.
La fórmula 77 muestra la base canónica A.
[Fórmula 77]
A : = (¿*0 , . . . , ^ - ! )
donde
a0 = (g1, 0,...,0), a1:= (0, g1, 0,...,0),..., aw-1:= (0,...,0,gn).
Aquí, cualquier elemento x: = (x0g1, ..., xN-1g1) en el espacio vectorial N-dimensional V se puede expresar mediante una combinación lineal de la base canónica A. Es decir, cualquier elemento x: = (x0g1, ..., xN-1g1) en el espacio vectorial N-dimensional V se puede expresar como se muestra en la fórmula 78.
[Fórmula 78]
X — X qí2q X\Cl\ H-------- h X j^ _ yÜ j^ _ \
La fórmula 79 muestra la base canónica A*. Al igual que con la base canónica A, cualquier elemento y: = (y0g2 , ..., yN-1g2) en el espacio vectorial N-dimensional V* puede expresarse mediante una combinación lineal de la base canónica A*.
[Fórmula 79]
Figure imgf000019_0001
donde
Figure imgf000019_0002
Las bases canónicas A y A* satisfacen las condiciones que se muestran en la fórmula 80.
[Fórmula 80]
e{ah a ^ - u ^ u i j e { 0,...,JV -l}
donde
ó: Kronecker 5 (es decir, 5ij = 1 si i = j y <5i,j = 0 si i # j) y
u:= e(gi,g2) 1.
Es decir, las bases canónicas A y A* son bases ortonormales duales y los espacios V y V* son espacios vectoriales duales emparejados mediante la operación de emparejamiento e.
Se explicará con más detalle la afirmación de que las bases canónicas A y A* satisfacen las condiciones mostradas en la fórmula 80.
Primero, se explicará la ecuación e(ai, a*i) = u. Para tomar un ejemplo, se calculará e(a0 , a*0). Basándose en a0 = (gi, 0, ..., 0) y a*0 = (g2 , 0, ..., 0) como se describió anteriormente, se deduce que: e(a0 , a*0) = e(gi, g2) * e (0, 0) *, ..., * e(0, 0). Aquí, como se describió anteriormente, se cumple la ecuación e(gi, g2) = u. Además, basándose en e(0, 0) = e (0.gi, 0g2) = e(gi, g2)0, se deduce que: e(0, 0) = 1. Por lo tanto, se cumple la ecuación e (a0 , a*0) = u. Los mismos cálculos también se cumplen para otros e(ai, a*i), de modo que se mantiene la ecuación e(ai, a*i) = u. A continuación, se describirá la ecuación e(ai, a*j) = 1 (i # j). Para tomar un ejemplo, se calculará e(a0 , a*i). Basándose en a0 = (gi, 0, ..., 0) y a*i = (0, g2 , 0, ..., 0) como se describió anteriormente, se deduce que: e(a0 , a*i) = e(gi, 0) * e(0, g2) * e(0, 0) *, ..., * e(0, 0). Basándose en e(gi, 0) = e (gi, 0g2) = e(gi, g2)0, se cumple la ecuación e(gi, 0) = 1. Asimismo, se cumple la ecuación e(0, g2) = 1. Además, como se describió anteriormente, se cumple la ecuación e(0, 0) = 1. Por tanto, se cumple la ecuación e(ai, a*j) = 1. Los mismos cálculos también se cumplen para otros e(ai, a*j), de modo que se cumple la ecuación e(ai, a*j) = 1.
Por tanto, las ecuaciones e(ai, a*i) = u y e(ai, a*j) = 1 (i # j) se cumplen sobre las bases canónicas A y A*.
4-4. (3) Mapeo lineal eficiente usando mapas de distorsión
Se describirá una transformación lineal, denominada mapeo de distorsión, para un generador x en el espacio V sobre la base canónica A.
Un mapa de distorsión $¡,j sobre la base canónica A del espacio V es un mapa que se muestra en la fórmula 81.
[Fórmula 81]
Si <*> ,,,(« /) = «,• y
k ^ 7 , entonces <f>ij (¿fy ) = 0.
Como se cumple la fórmula 82, el mapa de distorsión $¡,j puede lograr la transformación que se muestra en la fórmula 83.
[Fórmula 82]
Figure imgf000020_0001
[Fórmula 83]
Figure imgf000020_0007
Es decir, un elemento, a saber, un vector de base j, en la base canónica A del vector x puede transformarse en otro elemento, es decir, un vector de base i, en la base canónica A. En este momento, todos los elementos distintos al vector de base j que se transforma se convierten en 0. Es decir, en el vector x, el vector de base j se convierte en el vector de base i y los demás elementos se convierten en 0.
Un mapa de distorsión $*¡,j sobre la base canónica A* del espacio V* se puede representar de la misma manera que el mapa de distorsión $¡j sobre la base canónica A del espacio V.
Usando el mapa de distorsión $¡j ($*,j), cualquier transformación lineal W, expresada como una matriz N*N que se muestra en la fórmula 84, para x e V se puede calcular de manera eficiente mediante la fórmula 85.
[Fórmula 84]
Figure imgf000020_0002
[Fórmula 85]
Figure imgf000020_0003
4-5. (4) Un método para generar un par de claves (B, B*) a través de un cambio de base
Se describirá un método de cambio de base para cambiar las bases canónicas A y A* a otras bases B y B*. La figura 9 es un diagrama para explicar el método de cambio de base.
La base canónica A del espacio V se cambia a otra base B: = (b0 , ..., bN-i) del espacio V. Usando una transformación lineal X elegida uniformemente que se muestra en la fórmula 86, la base canónica A del espacio V se cambia a otra base B del espacio V como se muestra en la fórmula 87.
[Fórmula 86]
Figure imgf000020_0004
[Fórmula 87]
Figure imgf000020_0005
donde
Figure imgf000020_0006
Aquí, GL significa lineal general. Es decir, GL es un grupo lineal general, un conjunto de matrices cuadradas con determinantes distintos de cero y un grupo bajo multiplicación.
En los procesos criptográficos que se describen a continuación, la base B se utiliza como parámetro público (una clave pública) y X se utiliza como información de trampilla (una clave secreta).
Al usar X, la base B*: = (b*0 , ..., b*N-1) del espacio V* puede calcularse eficientemente a partir de la base canónica A* del espacio V*. La base B* del espacio V* se calcula usando X como se muestra en la fórmula 88.
[Fórmula 88]
Figure imgf000021_0001
donde
j ( * 0 -1 y
Figure imgf000021_0002
Aquí, se cumple la fórmula 89.
[Fórmula 89]
e{b¡,bj ) = iA ; i j e { 0 , .. N - 1}
donde
ó: Kronecker 5 (es decir, 5i,j = 1 si i = j y <5¡,j = 0 si i # j) y
u:= e(gi,g2) + 1.
Es decir, las bases B y B* son bases ortonormales duales de espacios duales V y V*. Esto significa que incluso cuando se cambian las bases canónicas A y A* mediante el uso de X, se conservan las bases ortonormales duales. En los procesos criptográficos que se describen a continuación, la base B* se puede utilizar como clave secreta (en lugar de X). Aunque los detalles se describirán más adelante, esto hace posible realizar diversos niveles o tipos de claves secretas para cumplir con los requisitos de claves secretas en los procesos criptográficos que se describirán más adelante. Es decir, configurando X como una clave secreta de nivel superior e información parcial de la base B* como una clave secreta de nivel inferior, se pueden generar claves secretas jerárquicas desde los niveles superior a inferior.
4-6. (5) Problemas computacionalmente intratables sobre (V, B) y (V, B*) para aplicaciones criptográficas Se definirán y establecerán problemas computacionalmente intratables sobre (V, B) y (V, B*) adecuados para aplicaciones criptográficas. Es decir, se describirán los problemas computacionalmente intratables, que forman la base de la seguridad de los procesos criptográficos que se describirán más adelante. Como se describió anteriormente, la base B: = (b0 , ..., bN-i) es una base del espacio V, y la base B* = (b*0 , ..., b*N-i) es una base del espacio V*.
La Bibliografía no relacionada con patentes 21 analiza problemas computacionales y de decisión sobre (V, B) y los resultados de la investigación de las relaciones entre estos problemas.
Se explicarán brevemente el problema de descomposición vectorial computacional (CVDP) y el problema de subespacio decisional (DSP) analizados en la Bibliografía no relacionada con patentes 21.
Uno de los problemas más naturales (computacionales) es el CVDP. El CVDP es un espacio de dimensiones superiores análogo a un problema de descomposición de subgrupos.
El supuesto de CVDP (N1, N2) es el siguiente: "dado v que se muestra en la fórmula 90, es difícil calcular u que se muestra en la fórmula 91".
[Fórmula 90]
Figure imgf000022_0001
donde
Figure imgf000022_0002
[Fórmula 91]
Figure imgf000022_0003
Para explicar el problema anterior simplemente, dado el vector v en la figura 4, es difícil (imposible) extraer, del vector v, el elemento y0b0 (o y1 b1) del vector v de la base B. Es decir, es difícil (imposible) descomponer el vector v en elementos y0b0 e y1 b1 del vector v de la base B.
Incluso si el supuesto de CVDP es cierto, el CVDP se puede calcular de manera eficiente utilizando el mapa de distorsión $¡j descrito anteriormente, una trampilla X (la transformación lineal X en el método de cambio de base descrito anteriormente) y el algoritmo Deco analizado en la Bibliografía no relacionada con patentes 21. Por otro lado, si el supuesto de CVDP es cierto y no se da la trampilla X, el CVDP no se puede resolver de manera eficiente. Es decir, configurando la transformación lineal X en el método de cambio de base descrito anteriormente como una clave secreta de nivel superior, el CVDP no puede resolverse de manera eficiente en un nivel inferior donde se desconoce la transformación lineal X.
Uno de los problemas de decisión más naturales es el DSP. El supuesto de DSP (N1, N2) es el siguiente: "es difícil determinar v que se muestra en la fórmula 93 a partir de u que se muestra en la fórmula 92".
[Fórmula 92]
Figure imgf000022_0004
donde
Figure imgf000022_0005
[Fórmula 93]
Figure imgf000022_0006
v :=vN bNi+..+vN _lbN _1
Para explicar el problema anterior simplemente, dado el vector v en la figura 4, es difícil determinar que y 0b0 (o y1 b1) es un elemento del vector v.
Basándose en los dos problemas anteriores, se puede afirmar que, dado el vector v (= c0b0 + ... CN-1bN-1) del espacio N-dimensional, es imposible extraer el elemento cnbn del vector de base bn del vector v y es imposible determinar que cnbn es un elemento del vector v.
4-7. (6) Esquema PE para predicados de productos internos utilizando un par de claves (B, B*)
El esquema PE para los predicados de productos internos se implementa aplicando las bases ortonormales duales (B, B*) al cálculo del producto interno de dos vectores.
Aplicar las bases ortonormales duales (B, B*) al cálculo del producto interno de dos vectores significa calcular la fórmula 94.
[Fórmula 94]
Figure imgf000022_0007
donde
Figure imgf000023_0001
x ■ v: producto interno de x y v,
Figure imgf000023_0007
El esquema PE para predicados de productos internos se implementa como se describe a continuación. Aquí se analizará un esquema de mecanismo de encapsulación de claves, pero naturalmente debe entenderse que también se puede implementar un esquema de encriptado.
Un texto cifrado c se construye como se muestra en la fórmula 95.
[Fórmula 95]
Figure imgf000023_0002
donde
Figure imgf000023_0003
y
xi: vector de atributo (I = 0, ..., n-1).
Una clave secreta k* se construye como se muestra en la fórmula 96.
[Fórmula 96]
Figure imgf000023_0004
donde
Figure imgf000023_0005
y
v: vector de predicado (i = 0, ..., n-1).
Aquí, se cumple la fórmula 97.
[Fórmula 97]
Figure imgf000023_0006
Es decir, la fórmula 98 se cumple si el producto interno del vector de atributo x^ y el vector de predicado v^ es 0.
[Fórmula 98]
Figure imgf000024_0001
Esto se debe a la fórmula 99, como se describió anteriormente.
[Fórmula 99]
Figure imgf000024_0002
Es decir, un lado receptor puede obtener información común K (una clave de sesión) de un texto cifrado c estableciendo el vector de atributo x ^ y el vector de predicado v^ tal que el producto interno del vector de atributo x ^ y el vector de predicado v ^ es 0.
La clave de sesión K está oculta. Es decir, un adversario que no tiene la clave secreta k* no puede obtener, del texto cifrado c, información sobre la clave de sesión K. Esto se debe a que, según el supuesto CVDP descrito anteriormente, el adversario no puede extraer pbn que es un elemento del texto cifrado c.
No solo está oculta la clave de sesión K sino también el vector de atributo x^. Es decir, el adversario que no tiene la clave secreta k* no puede obtener, del texto cifrado c, información no solo sobre la clave de sesión K sino también sobre el vector de atributo x^. Aquí, el supuesto de DSP descrito anteriormente juega un papel central en la explicación de la ocultación de la información del vector de atributo x^, ya que el supuesto de DSP implica que la fórmula 100 es indistinguible de la fórmula 101.
[Fórmula 100]
Figure imgf000024_0003
donde
Ó0 := X0b0 +...+ Xn- 1bn-1 , y
Figure imgf000024_0004
[Fórmula 101]
Figure imgf000024_0005
donde
Figure imgf000024_0006
5. Espacios vectoriales de distorsión dual
Basándose en los conceptos descritos en el punto 4 anterior, se describirán espacios vectoriales de distorsión dual (DDVS). Como se describió anteriormente, los esquemas HPKEM y HPE que se describirán más adelante se implementan en DDVS.
DDVS (V, V*, Gt, A, A*, q) son una tupla de dos espacios vectoriales N-dimensionales V y V* sobre Fq, un grupo cíclico Gt de orden q, la base canónica A: = (a0 , ..., aN-1) del espacio V y la base canónica A*: = (a*0 , ..., a*N-1) del espacio V* que satisfacen las siguientes tres condiciones: (1) existen mapas de distorsión, (2) existe un emparejamiento bilineal no degenerado y (3) las bases canónicas de los dos espacios son bases ortonormales duales.
(1) Mapas de distorsión (ver el punto 4-4 anterior)
Existen mapas de distorsión computable en tiempo polinómico $¡,j y $*¡,j.
Es decir, la primera condición es que los endomorfismos $¡,j del espacio V y endomorfismos $*¡j del espacio V* que se muestra en la fórmula 102 son calculables en tiempo polinómico.
[Fórmula 102]
Figure imgf000025_0003
(2) Emparejamiento bilineal no generado (ver el punto 4-1 anterior)
Existe un emparejamiento bilineal no degenerado computable en tiempo polinómico e.
Es decir, la segunda condición es que exista un emparejamiento bilineal e no degenerado que se muestra en la fórmula 103.
[Fórmula 103]
Figure imgf000025_0001
G ’T'’donde 1 : grupo cíclico de orden q.
Es decir, si e(sx,ty) = e(x,y)st y
e(x,y) = 1 para todos
. y e v ,
entonces x = 0.
(3) Bases ortonormales duales (ver el punto 4-2 anterior)
Las bases canónicas A y A* de los espacios V y V* son bases ortonormales duales.
Es decir, la tercera condición es que las bases canónicas A y A* de los espacios V y V* satisfagan la condición mostrada en la fórmula 104.
[Fórmula 104]
Figure imgf000025_0002
para todo i y j,
donde
5 : Kronecker 5 (es decir, 5¡,j = 1 si i = j y <5¡,j = 0 si i j),
y
Figure imgf000026_0001
Al satisfacer la tercera condición, también se puede establecer que los espacios V y V* son espacios duales emparejados a través de la operación de emparejamiento e (ver el punto 4-2 anterior).
Permítase que EndFq (V) sea el espacio vectorial Fq de endomorfismos del espacio V sobre Fq. Del mismo modo, permítase que EndFq (V*) sea el espacio vectorial Fq de endomorfismos del espacio V* sobre Fq. Entonces, los mapas de distorsión $¡,j (resp. $*¡,j) forman una base de espacio vectorial EndFq Fq N2-dimensional (V) (resp. EndFq (V*)).
Un endomorfismo computable en tiempo polinómico aleatorio de V/Fq (resp. V*/Fq) que se muestran en la fórmula 106 se pueden muestrear de manera eficiente mediante el uso de coeficientes aleatorios que se muestran en la fórmula 105.
[Fórmula 105]
Figure imgf000026_0002
[Fórmula 106]
Figure imgf000026_0003
Ejemplos de DDVS se analizarán en una realización posterior.
6. Un resumen de un método para implementar los esquemas HPKEM y HPE
Basado en los conceptos (ver el punto 4 anterior) y DDVS (ver el punto 5 anterior) descritos anteriormente, se describirá brevemente un método mediante el cual el sistema de procesamiento criptográfico 10 mencionado anteriormente (ver el punto 3 anterior) implementa los esquemas HPKEM y HPE.
El sistema de procesamiento criptográfico 10 implementa los esquemas HPKEM y HPE en DDVS. Es decir, el sistema de procesamiento criptográfico 10 implementa los esquemas HPKEM y HPE en espacios vectoriales duales de alta dimensión que son espacios vectoriales de alta dimensión que tienen mapas de distorsión, emparejamiento bilineal no degenerado y bases ortonormales duales y se emparejan a través de la operación de emparejamiento e. La operación de emparejamiento e que empareja dos espacios (la operación de emparejamiento en los espacios vectoriales de alta dimensión) es la operación de emparejamiento definida en el punto 4-2 anterior.
De acuerdo con los puntos 4-5 anteriores, el sistema de procesamiento criptográfico 10 implementa los esquemas HPKEM y HPE utilizando, como un par de claves (una clave pública y una clave secreta), las bases ortonormales duales B y B* generadas a partir de las bases canónicas A y A* de los espacios V y V* a través de una transformación predeterminada. De acuerdo con los puntos 4-7 anteriores, el dispositivo de generación de claves 100 del sistema de procesamiento criptográfico 10 usa una de las bases ortonormales duales B y B* (en lo sucesivo, la base B) como clave pública maestra, y la otra de las bases ortonormales duales B y B* (en lo sucesivo, la base B*) como clave secreta maestra.
Es decir, en (S101) de la figura 7, el dispositivo de generación de claves 100 genera, como clave pública maestra, información que incluye la base B de DDVS que son espacios vectoriales de alta dimensión. Basándose en un vector de predicado v ^ 1 (v^1 = (v0 , ..., v¡) (i = P1-1)), el dispositivo de generación de claves 100 también genera un vector de la base B* como una clave secreta de primer nivel. En (S102) de la figura 7, basándose en x ^ 1 (x^1 = (x0 , ..., x¡) (i = |J1-1 )), el dispositivo de encriptado 200 genera un texto cifrado c incrustando información p para generar una clave de sesión K o incrustando un mensaje m en el vector de la base B que es la clave pública maestra. En (S103) de la figura 7, el dispositivo de desencriptado 300 realiza la operación de emparejamiento e sobre el texto cifrado c que es un vector de la base B y la clave secreta de primer nivel que es un vector de la base B* y extrae la clave de sesión K o el mensaje m incrustado en el texto cifrado c. La operación de emparejamiento e sobre los vectores de alta dimensión ejecutada por el dispositivo de desencriptado 300 es la operación de emparejamiento definida en el punto 4-2 anterior.
En (S201) de la figura 8, basándose en un vector de predicado v^ l+i (v^ l+i = (vi, ..., vj) (i = gi_, j = pl+i -1)), el dispositivo de delegación de claves 400 genera un vector de la base B* como una clave secreta de (L+1)-ésimo nivel. En (S202) de la figura 8, basándose en los vectores de atributos x ^ 1 a x^ l+1 (x^¡(¡ = 1, ..., L+1) (= (x0 , ..., xi) (i = pl+1- 1 ))), el dispositivo de encriptado 200 genera un texto cifrado c incrustando información p para generar una clave de sesión K o incrustando un mensaje m en el vector de la base B que es la clave pública maestra. En (S203) de la figura 8, el dispositivo de desencriptado 300 realiza la operación de emparejamiento e sobre el texto cifrado c que es un vector de la base B y la clave secreta de (L+1)-ésimo nivel que es un vector de la base B* y extrae la clave de sesión K o el mensaje m incrustado en el texto cifrado c.
En base a los problemas computacionalmente intratables descritos en los puntos 4-6 anteriores, se asegura la seguridad de este proceso criptográfico (el secreto de la clave de sesión K o el mensaje m y los vectores de atributos).
Segunda realización
En esta realización, basándose en los conceptos descritos en la primera realización, se describirá el sistema de procesamiento criptográfico 10 que implementa el esquema HPKEM.
Haciendo referencia a las figuras 10 a 15, se describirán las funciones y operaciones del sistema de procesamiento criptográfico 10.
La figura 10 es un diagrama de bloques funcional que muestra las funciones del sistema de procesamiento criptográfico 10 según esta realización. Como se describió anteriormente, el sistema de procesamiento criptográfico 10 incluye el dispositivo de generación de claves 100, el dispositivo de encriptado 200, el dispositivo de desencriptado 300 y el dispositivo de delegación de claves 400. También se supone en esta realización que el dispositivo de desencriptado 300 incluye el dispositivo de delegación de claves 400.
La figura 11 es un diagrama de flujo que muestra las operaciones del dispositivo de generación de claves 100. La figura 12 es un diagrama de flujo que muestra las operaciones del dispositivo de encriptado 200. La figura 13 es un diagrama de flujo que muestra las operaciones del dispositivo de desencriptado 300. La figura 14 es un diagrama de flujo que muestra las operaciones del dispositivo de delegación de claves 400.
La figura 15 es un diagrama conceptual que muestra una estructura de una base de espacios vectoriales de distorsión dual (DDVS).
Se describirán las funciones y operaciones del dispositivo de generación de claves 100. El dispositivo de generación de claves 100 incluye una unidad de generación de claves maestras 110, una unidad de almacenamiento de claves maestras 120, una unidad de generación de vectores de claves 130, una unidad de generación de vectores de generación de claves 140 y una unidad de distribución de claves 150.
S301: Etapa de generación de claves maestras
Usando el dispositivo de procesamiento, la unidad de generación de claves maestras 110 calcula la fórmula 107 para generar una clave pública maestra pk y una clave secreta maestra sk y almacena las claves generadas en la unidad de almacenamiento de claves maestras 120.
[Fórmula 107]
Figure imgf000028_0001
(6)
Figure imgf000028_0002
retorno sk,pk
Es decir:
(1) utilizando el dispositivo de procesamiento, la unidad de generación de claves maestras 110 genera DDVS N(= n+2)-dimensionales (V, V*, Gt, A, A*, q) con un parámetro de seguridad 1 \ Gddvs es un algoritmo de generación de DDVS que toma como entrada 1A y N, y emite (V, V*, Gt, A, A*, q) con el parámetro de seguridad 1A y el espacio N-dimensional V.
(2) Usando el dispositivo de procesamiento, la unidad de generación de claves maestras 110 selecciona aleatoriamente una transformación lineal X para generar una base B a partir de una base canónica A.
(3) Usando el dispositivo de procesamiento y basándose en la transformación lineal X seleccionada, la unidad de generación de claves maestras 110 genera la base B: = (b0 , ..., bn-1) de la base A: = (a0 , ..., an-1).
(4) Usando el dispositivo de procesamiento, la unidad de generación de claves maestras 110 genera una transformación lineal (XT)-1 de la transformación lineal X para generar una base B*: = (b*0, ..., b*n-1) a partir de una base A*: = (a*0, ..., a*n-1).
(5) Usando el dispositivo de procesamiento y basado en la transformación lineal generada (XT)-1, la unidad de generación de claves maestras 110 genera la base B* a partir de la base A*.
(6) La unidad de generación de claves maestras 110 designa la base B* generada como la clave secreta maestra sk, e incluyendo (1 \ p^, V, V*, Gt, A, A*, q, B) la base B generada como la clave pública maestra pk. La unidad de almacenamiento de claves maestras 120 almacena en un dispositivo de almacenamiento la clave pública maestra pk y la clave secreta maestra sk generada por la unidad de generación de claves maestras 110.
Se supone que hay un número N (= n+2) de dimensiones en el DDVS, donde n indica el número de vectores de base asignados para representar la estructura jerárquica de un formato de jerarquía p^. Es decir, además del número n de vectores de base asignados para representar la estructura jerárquica, se proporcionan dos vectores de base. Por supuesto, el número de vectores de base puede incrementarse de manera adicional.
Como se muestra en la figura 15, el número n de vectores de base del número N(= n+2) de vectores de base se asigna para representar la estructura jerárquica. La estructura de los vectores de base asignados para representar la estructura jerárquica es la misma que la estructura que se muestra en la figura 5. Uno de los dos vectores de base restantes (el vector de base n-ésimo) se utiliza como información para generar una clave de sesión (información de transmisión p). El otro de los dos vectores de base restantes (el vector de base (n+1)-ésimo) se utiliza para aleatorizar un texto cifrado c.
Para resumir, en (S301), la unidad de generación de claves maestras 110 ejecuta el algoritmo Setup mostrado en la fórmula 108 para generar la clave pública maestra pk y la clave secreta maestra sk.
[Fórmula 108]
Sotu
Figure imgf000029_0001
retorno s k ,p k .
S302: Etapa de generación de vectores de claves k*i, o
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk, la clave secreta maestra sk y un vector de predicado v d (v d = (v0 , ..., vi) (i = pl-1)), la unidad de generación de vectores de claves 130 calcula la fórmula 109 para generar un vector de clave k*1,0 que es el primer elemento de una clave secreta de primer nivel (nivel 1).
[Fórmula 109]
(o
Figure imgf000029_0002
donde primer elemento de la clave secreta de primer nivel, y
vector de predicado.
Es decir:
(1) utilizando el dispositivo de procesamiento, la unidad de generación de vectores de claves 130 genera un número aleatorio 01 , 0.
(2) Usando el dispositivo de procesamiento, la unidad de generación de vectores de claves 130 genera el vector de clave k*1,0 estableciendo un valor predeterminado (1 en este caso) como el coeficiente del vector de base b*n en la base B* del espacio V**, y también estableciendo cada elemento del vector de predicado v d aleatorizado por el número aleatorio generado 01 ,0 como el coeficiente de cada vector de base b*i (i = 0, ..., pl-1).
S303: Etapa de generación de vectores de generación de claves k*l, j
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk, la clave secreta maestra sk y el vector de predicado v^ i, la unidad de generación de vectores de generación de claves 140 calcula la fórmula 110 para generar cada vector de generación de claves k*ij para generar una clave secreta de nivel inferior (un vector de clave de nivel inferior). El vector de generación de claves k*1j es el j-ésimo elemento de la clave secreta de primer nivel.
[Fórmula 110]
( 1)
Figure imgf000030_0004
donde
Figure imgf000030_0001
j-ésimo elemento de la clave secreta de primer nivel.
Es decir:
(1) utilizando el dispositivo de procesamiento, la unidad de generación de vectores de generación de claves 140 genera números aleatorios d ,j (j = p1, ..., n-1).
(2) Usando el dispositivo de procesamiento, la unidad de generación de vectores de generación de claves 140 genera el vector de generación de claves k*1j, para cada j (j = p1, ..., n-1), estableciendo un valor predeterminado (1 en este caso) como el coeficiente del vector de base b*j en la base B* del espacio V*, y también estableciendo cada elemento del vector de predicado v ^ 1 aleatorizado por los números aleatorios generados a 1j como el coeficiente de cada vector de base b*i (i = 0, ..., p1- 1 ).
Para resumir, en (S302) y (S303), utilizando el dispositivo de procesamiento, la unidad de generación de vectores de claves 130 y la unidad de generación de vectores de generación de claves 140 ejecutan el algoritmo GenKey que se muestra en la fórmula 111 para generar la clave secreta de primer nivel (información de clave k^ *1) incluyendo el vector de clave k*1,0 y los vectores de generación de claves k*1j.
[Fórmula 111]
Figure imgf000030_0002
donde
Figure imgf000030_0003
clave secreta de primer nivel.
S304: Etapa de distribución de claves
La unidad de distribución de claves 150 transmite la clave pública maestra generada por la unidad de generación de claves maestras 110 y la información de clave k^ *1 generada por la unidad de generación de vectores de claves 130 y la unidad de generación de vectores de generación de claves 140 al dispositivo de desencriptado 300 a través del dispositivo de comunicación. La unidad de distribución de claves 150 también transmite la clave pública maestra al dispositivo de encriptado 200 a través del dispositivo de comunicación. La información de clave k^ *1 se transmite en secreto al dispositivo de desencriptado 300. Se puede utilizar cualquier método para transmitir secretamente la información de clave k^ *1 al dispositivo de desencriptado 300. Por ejemplo, la información de clave k^ *1 puede transmitirse utilizando un proceso criptográfico de la técnica anterior.
Se describirán las funciones y operaciones del dispositivo de encriptado 200. El dispositivo de encriptado 200 incluye una unidad de configuración de información de transmisión 210, una unidad de generación de vectores de cifrado 220, una unidad de transmisión de datos 230 y una unidad de generación de clave de sesión 240.
S401: Etapa de configuración de la información de transmisión
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk, la unidad de configuración de información de transmisión 210 calcula la fórmula 112 para generar un vector de información de transmisión pv.
[Fórmula 112]
Figure imgf000031_0001
pv := pbn
Es decir, utilizando el dispositivo de procesamiento, la unidad de configuración de información de transmisión 210 genera el vector pv de información de transmisión estableciendo la información de transmisión p (un número aleatorio en este caso) como el coeficiente del vector de base bn en la base B incluida en la clave pública maestra pk.
S402: Etapa de generación de vectores de cifrado
Usando el dispositivo de procesamiento y basado en la clave pública maestra pk y los vectores de atributos x a x^ l (x^1 (i = 1, ..., L) (= (X0 , ..., xi) (i = pl-1))), la unidad de generación de vectores de cifrado 220 calcula la fórmula 113 para generar un vector de cifrado c, donde L indica la profundidad de la jerarquía.
[Fórmula 113]
(1)
Figure imgf000031_0002
donde
(X l,...,xL): = ((x0,...,x^1 - 1),.., (x^L - 1,...,x^L-1)):
vector de atributo.
(3)
w S n+\bn+\
(4)
Figure imgf000032_0001
Es decir:
(1) utilizando el dispositivo de procesamiento, la unidad de generación de vectores de cifrado 220 genera números aleatorios x^¡ (i = L+1, ..., d) y 5i (i = 1, ..., d, n+1).
(2) Usando el dispositivo de procesamiento, la unidad de generación de vectores de cifrado 220 genera un vector de información de atributo xv estableciendo cada elemento de los vectores de atributos como el coeficiente de cada vector de base bi (i = 0, ..., pi_-1) en la base B incluida en la clave pública maestra pk y también estableciendo cada número aleatorio como el coeficiente de cada vector de base bi (i = pi_, ..., n-1), como se describe a continuación.
La unidad de generación de vectores de cifrado 220 establece el vector de atributo x^ 1 aleatorizado por el número aleatorio Ó1 como el coeficiente de cada vector de base bi (i = 0, ..., pl-1). La unidad de generación de vectores de cifrado 220 establece el vector de atributo x^ 2 (x^ 2 = (x¡, ..., xj) (i = p1, j = p2-1 )) aleatorizado por el número aleatorio Ó2 como el coeficiente de cada vector de base bi (i = p1, ..., p2-1). Asimismo, la unidad de generación de vectores de cifrado 220 establece el vector de atributo x^k (x^k = (x¡, ..., xj) (i = pk-1, j = pk-1)) aleatorizado por el número aleatorio 5k como el coeficiente de cada vector de base bi (i = pk-1, ..., pk-1) (k = 3, ..., L) y así sucesivamente. Además, la unidad de generación de vectores de cifrado 220 establece un valor numérico aleatorio calculado a partir de los números aleatorios x^¡ (i = L+1, ..., d) y 5i (i = L+1, ..., d) como el coeficiente de cada vector de base bi (i = pl, ..., n-1).
(3) Usando el dispositivo de procesamiento, la unidad de generación de vectores de cifrado 220 genera un vector de números aleatorios rv estableciendo el número aleatorio 5n+1 como el coeficiente del vector de base bn+1 en la base B incluida en la clave pública maestra pk.
(4) Usando el dispositivo de procesamiento, la unidad de generación de vectores de cifrado 220 genera el vector de cifrado c añadiendo el vector de información de atributo generado xv y el vector de números aleatorios generado rv al vector de información de transmisión pv generado por la unidad de configuración de información de transmisión 210.
S403: Etapa de transmisión de datos
La unidad de transmisión de datos 230 transmite el vector de cifrado c generado por la unidad de generación de vectores de cifrado 220 al dispositivo de desencriptado 300 a través del dispositivo de comunicación.
S404: Etapa de generación de clave de sesión
Usando el dispositivo de procesamiento, la unidad de generación de clave de sesión 240 calcula la fórmula 114 para generar una clave de sesión K.
[Fórmula 114]
Figure imgf000032_0002
donde
u:= e(g1,g2) í 1.
En resumen, el dispositivo de encriptado 200 ejecuta el algoritmo Enc que se muestra en la fórmula 115 para generar el vector de cifrado c y la clave de sesión K.
[Fórmula 115]
Figure imgf000033_0002
retorno (c,£).
Se describirán las funciones y operaciones del dispositivo de desencriptado 300. El dispositivo de desencriptado 300 incluye una unidad de entrada de vectores 310, una unidad de almacenamiento de vectores de claves 320 y una unidad de operación de emparejamiento 330.
S501: Etapa de entrada de vectores
La unidad de entrada de vectores 310 recibe a través del dispositivo de comunicación e introduce el vector de cifrado c transmitido por la unidad de transmisión de datos 230 del dispositivo de encriptado 200.
S502: Etapa de operación de emparejamiento
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk y el vector de clave k*L,0 que es el primer elemento de la clave secreta de L-ésimo nivel, la unidad de operación de emparejamiento 330 calcula la fórmula 116 para generar una clave de sesión K' (= K).
[Fórmula 116]
Figure imgf000033_0001
donde
C: vector de cifrado, y
primer elemento de la clave secreta de L-ésimo nivel.
Es decir, utilizando el dispositivo de procesamiento, la unidad de operación de emparejamiento 330 calcula la clave de sesión K' realizando la operación de emparejamiento e, que empareja los espacios V y V* incluidos en la clave pública maestra pk, en el vector de cifrado c introducido por la unidad de entrada de vector 310 y el vector de clave k*L,0 almacenado en el dispositivo de almacenamiento por la unidad de almacenamiento de vectores de claves 320. Cuando el vector de clave k*L,0 se proporciona por el dispositivo de generación de claves 100 o el dispositivo de delegación de claves 400 de un nivel superior, la unidad de almacenamiento de vectores de claves 320 almacena el vector de clave k*L,0 en el dispositivo de almacenamiento.
La capacidad de la operación de emparejamiento para calcular la clave de sesión K se describirá en detalle más adelante.
En resumen, el dispositivo de desencriptado 300 ejecuta el algoritmo Dec mostrado en la fórmula 117 para generar la clave de sesión K'.
[Fórmula 117]
Figure imgf000034_0001
K ': = e ( c , k retorno K '.
Se describirán las funciones y operaciones del dispositivo de delegación de claves 400. El dispositivo de delegación de claves 400 incluye una unidad de adquisición de vectores de claves 410, una unidad de generación de vectores de claves 420, una unidad de generación de vectores de generación de claves 430 y una unidad de distribución de claves 440.
S601: Etapa de adquisición del vector de clave k*L,o
La unidad de adquisición de vectores de claves 410 adquiere, a través del dispositivo de comunicación, la clave secreta de L-ésimo nivel (información de clave k ^ \) incluyendo el vector de clave k*L,0 que es el primer elemento de la clave secreta de L-ésimo nivel y los vectores de generación de claves k*L, j que son los j-ésimos (j = p1, ..., n-1) elementos de la clave secreta de L-ésimo nivel. Es decir, la unidad de adquisición de vectores de claves 410 adquiere, a través del dispositivo de comunicación, la información de clave k^*1 incluyendo el vector de clave k*1,0 y los vectores de generación de claves k*1j proporcionada por el dispositivo de generación de claves 100 o la información de claves k ^ \ incluyendo el vector de clave k*L,0 y los vectores de generación de claves k*L,j proporcionados por el dispositivo de delegación de claves de nivel superior 400.
S602: Etapa de generación del vector de clave k*L+ 1,0
Usando el dispositivo de procesamiento y basándose en clave pública maestra pk, la información de la clave k ^ \ y un vector de predicado v^ l+1 (V^l+1 = (vi, ..., vj) (i = pl, j = pl+1- 1 )), la unidad de generación de vectores de claves 420 calcula la fórmula 118 para generar un vector de clave k*L+1, 0 que es el primer elemento de una clave secreta de (L+1)-ésimo nivel.
[Fórmula 118]
O )
Figure imgf000034_0002
k*L ■|J’ 0 U : primer elemento de la clave secreta de L-esimo nivel,
kr y: i-esimo elemento de la clave secreta de L-esimo nivel, y
vi(i = y l, ...jvl1-1): vector de predicado L+1.
Es decir:
(1) utilizando el dispositivo de procesamiento, la unidad de generación de vectores de claves 420 genera un número aleatorio OL+1,0.
(2) Usando el dispositivo de procesamiento, la unidad de generación de vectores de claves 420 genera el vector de clave k*L+1,0 agregando, al vector de clave k*L,0, o, vectores vi (i = pl, ..., pl+1-1) en el que cada elemento del vector de predicado v^ l+i aleatorizado por el número aleatorio ctl+i ,o se establece como el coeficiente de cada vector de generación de claves k*L,i (i = pl, ..., pl+i -1).
S603: Etapa de generación del vector de generación de claves k*K+i,j
Usando el dispositivo de procesamiento y basado en la clave pública maestra pk, la información de clave k ^ \ y el vector de predicado v^L+i, la unidad de generación de vectores de generación de claves 430 calcula la fórmula 119 para generar cada vector de generación de claves k*L+ij (j = pl+i , ..., n-1) para generar una clave de nivel inferior (un vector de clave de nivel inferior). El vector de generación de claves k*L+ij es el j-ésimo elemento de la clave secreta de (L+1)-ésimo nivel.
[Fórmula 119]
Figure imgf000035_0001
donde
Figure imgf000035_0002
j-ésimo elemento de la clave secreta de (L+1)-ésimo nivel,
Figure imgf000035_0003
j-ésimo elemento de la clave secreta de L-ésimo nivel, y
vi (i = y l, ..., /vl+i -1): información de predicado.
Es decir:
(1) utilizando el dispositivo de procesamiento, la unidad de generación de vectores de generación de claves 430 genera números aleatorios ctl+i , j(j = pl+i , ..., n-1).
(2) Usando el dispositivo de procesamiento, la unidad de generación de vectores de generación de claves 430 genera el vector de generación de claves k*L+ij para generar un vector de clave de nivel inferior del vector de clave k*L+i,o, para cada j (j = pl+i , ..., n-1) agregando, al vector de generación de claves k*L,j, vectores en los que cada elemento del vector de predicado v^ l+i aleatorizado por los números aleatorios ctl+i j se establece como el coeficiente de cada vector de generación de claves k*L,i (i = pl, ..., pl+i -1).
Para resumir, en (S602) y (S603), utilizando el dispositivo de procesamiento, la unidad de generación de vectores de claves 420 y la unidad de generación de vectores de claves 430 ejecutan el algoritmo DelegateL que se muestra en la fórmula 120 para generar la clave secreta de (L+1)-ésimo nivel (información de clave k^ \+ i) incluyendo el vector de clave k*L+i,o y los vectores de generación de claves k*L+ij.
[Fórmula 120]
Figure imgf000036_0001
retorno k*L+x.
K j .. i :
donde •L,T1 (L+1 )-ésimo nivel de clave secreta.
Es decir, en la información de clave k^*L+i se muestra en la fórmula 120, el elemento superior (primero) k*L,0 es el vector de clave k*L+1,0 para ser utilizado como clave de desencriptado L+1. En la información de clave k^Vn mostrada en la fórmula 120, el segundo y los elementos posteriores son etiquetas para la delegación de claves.
S604: Etapa de distribución de claves
La unidad de distribución de claves 440 transmite la información de clave k^Vn generada por la unidad de generación de vectores de claves 420 y la unidad de generación de vectores de generación de claves 430 al dispositivo de desencriptado 300 de un nivel inferior a través del dispositivo de comunicación. La información de clave k^*L+1 se transmite en secreto al dispositivo de desencriptado 300. Se puede utilizar cualquier método para transmitir secretamente la información de clave k^Y+1 al dispositivo de desencriptado 300. Por ejemplo, la información de clave k^Y+1 puede transmitirse utilizando un proceso criptográfico de la técnica anterior.
La figura 16 es un diagrama para explicar la operación de emparejamiento en (S502).
Con referencia a la figura 16, se explicará que en (S502) la unidad de operación de emparejamiento 330 puede extraer la clave de sesión K (= K') mediante la operación de emparejamiento mostrada en la fórmula 116. En la figura 16, los índices de los números aleatorios c y ó se omiten por simplicidad.
Como se describió anteriormente, en un texto cifrado c de L-ésimo nivel, el vector de atributo aleatorizado se establece como el coeficiente de cada vector de base bi (i = 0, ..., pl-1). En el texto cifrado c, el número aleatorio x ^ se establece como el coeficiente de cada vector de base bi (i = (pl, ..., n-1). En el texto cifrado c, p se establece como el coeficiente del vector de base bn. Además, en el texto cifrado c, el número aleatorio ó se establece como el coeficiente del vector de base bn+1.
Por otro lado, en un vector de clave de L-ésimo nivel k*L,0, el vector de predicado aleatorizado se establece como el coeficiente de cada vector de base b*i(i = 0, ..., pl-1). En el vector de clave k*L,0, el coeficiente de cada vector de base b*i(i = pl, ..., n-1) no está establecido. Es decir, 0 se establece como el coeficiente. En el vector de clave k*L,0, 1 se establece como el coeficiente del vector de base b*n. Además, en el vector de clave k*L,0, 0 se establece como el coeficiente del vector de base bn+1.
Cuando se realiza la operación de emparejamiento que se muestra en la fórmula 116, el producto interno se convierte en 0 entre cada vector de base b*i(i = pl, ..., n-1, n+1) en el que 0 se establece como el coeficiente en el vector de clave k*L,0 y cada vector de base correspondiente bi (i = pl, ..., n-1, n+1) en el texto cifrado c.
El producto interno también se convierte en 0 entre cada vector de base bi (i = 0, ..., pl-1) en el que el vector de atributo se establece como el coeficiente en el texto cifrado c y cada vector de base b*i (i = 0, ..., pl-1) en el que el vector de predicado se establece como el coeficiente en el vector de clave k*L,0. Esto se debe a que el vector de atributo y el vector de predicado se establecen de manera que su producto interno se convierte en 0.
Por lo tanto, como resultado de la operación de emparejamiento que se muestra en la fórmula 116, solo e(pbn, b*n) permanece como un par cuyo producto interno no es 0. Por lo tanto, se cumple la ecuación e(pbn, b*n) = up = K, de modo que la clave de sesión K se puede calcular calculando la operación de emparejamiento que se muestra en la fórmula 116.
La figura 17 es un diagrama para explicar que la clave de sesión K no puede calcularse mediante una clave de nivel inferior.
Con referencia a la figura 17, se explicará que en (S502) la unidad de operación de emparejamiento 330 no puede extraer la clave de sesión K realizando la operación de emparejamiento mostrada en la fórmula 116 en el texto cifrado c encriptado en base a un vector de atributo de nivel superior y un vector de clave de nivel inferior k*Lv,0. En la figura 17, los índices de los números aleatorios o y 6 se omiten por simplicidad. En la explicación de la figura 17, se supone que Lx (= Lx) < Lv (= Lv).
En un texto cifrado c de Lx-ésimo nivel, el vector de atributo aleatorizado se establece como el coeficiente de cada vector de base bi (i = 0, ..., pLx-1). En el texto cifrado c, el número aleatorio x ^ se establece como el coeficiente de cada vector de base bi (i = pLx, ..., n-1). En el texto cifrado c, p se establece como el coeficiente del vector de base bn. Además, en el texto cifrado c, el número aleatorio 6 se establece como el coeficiente del vector de base bn+1.
Por otro lado, en un vector de clave de Lv-ésimo nivel k*Lv,0, el vector de predicado aleatorio se establece como el coeficiente de cada vector de base b*i(i = 0, ..., pLv-1). En el vector de clave k*Lv,0, el coeficiente de cada vector de base b*i(i = pLv, ..., n-1) no está establecido. Es decir, 0 se establece como el coeficiente. En el vector de clave k*Lv,0, 1 se establece como el coeficiente del vector de base b*n. Además, en el vector de clave k*Lv,0, 0 se establece como el coeficiente del vector de base bn+1.
Cuando se realiza la operación de emparejamiento que se muestra en la fórmula 116, el producto interno se convierte en 0 entre cada vector de base b*i(i = pLv, ..., n-1, n+1) en el que 0 se establece como el coeficiente en el vector de clave k*L,0 y cada vector de base correspondiente bi (i = pLv, ..., n-1, n+1) en el texto cifrado c.
El producto interno también se convierte en 0 entre cada vector de base bi (i = 0, ..., pLx-1) en el que el vector de atributo se establece como el coeficiente en el texto cifrado c y cada vector de base b*i (i = 0, ..., pLx-1) en el que el vector de predicado se establece como el coeficiente en el vector de clave k*L,0.
Sin embargo, el producto interno no se convierte en 0 entre cada vector de base bi (i = pLx, ..., pLv-1) en el que el número aleatorio se establece como el coeficiente en el texto cifrado c y cada vector de base b*i(i = pLx, ..., pLv-1) en el que el vector de predicado se establece como el coeficiente en el vector de clave k*L,0.
Por tanto, permanecen valores distintos de e(pbn, b*n), por lo que la clave de sesión K no se puede calcular.
La figura 18 es un diagrama para explicar que la clave de sesión K puede calcularse mediante una clave de nivel superior.
Con referencia a la figura 18, se explicará que en (S502) la unidad de operación de emparejamiento 330 puede extraer la clave de sesión K realizando la operación de emparejamiento mostrada en la fórmula 116 en el texto cifrado c encriptado en base a un vector de atributo de nivel inferior y un vector de clave de nivel superior k*Lv,0. En la figura 18, los índices de los números aleatorios o y 6 se omiten por simplicidad. En la explicación de la figura 20, se supone que Lx (= Lx) > Lv (= Lv).
Los coeficientes de los vectores de base en el texto cifrado c y el vector de clave k*Lv,0 se establecen de la misma manera que en la figura 17. Sin embargo, como se indicó anteriormente, hay que tener en cuenta que Lx (= Lx) > Lv (= Lv).
Cuando se realiza la operación de emparejamiento que se muestra en la fórmula 116, el producto interno se convierte en 0 entre cada vector de base b*i(i = pLv, ..., n-1, n+1) en el que 0 se establece como el coeficiente en el vector de clave k*L,0 y cada vector de base correspondiente bi (i = pLv, ..., n-1, n+1) en el texto cifrado c.
El producto interno también se convierte en 0 entre cada vector de base bi (i = 0, ..., pLv-1) en el que el vector de atributo se establece como el coeficiente en el texto cifrado c y cada vector de base b*i (i = 0, ..., pLv-1) en el que el vector de predicado se establece como el coeficiente en el vector de clave k*L,0.
Por lo tanto, como resultado de la operación de emparejamiento que se muestra en la fórmula 116, solo e(pbn, b*n) permanece como un par cuyo producto interno no es 0. Por lo tanto, se cumple la ecuación e(pbn, b*n) = up = K, de modo que la clave de sesión K se puede calcular calculando la operación de emparejamiento que se muestra en la fórmula 116.
Como es obvio a partir de la explicación anterior, la razón para establecer un número aleatorio aleatorizado como el coeficiente de cada vector de base bi (i = pj, ..., pj 1-1) (j = L 1, ..., d) en (2) de (S402) anterior es para asegurar la superioridad sobre un vector de clave de nivel inferior. Es decir, es para asegurar que el vector de cifrado c pueda ser desencriptado por el vector de clave k*L,0, pero no pueda ser desencriptado por un vector de clave de un nivel más bajo que el vector de clave k*L,0.
Como se ha descrito, el sistema de procesamiento criptográfico 10 según esta realización puede implementar el esquema HPKEM basándose en los conceptos descritos en la primera realización.
En la descripción anterior, el dispositivo de generación de claves 100 genera claves secretas de primer nivel. Es decir, el dispositivo de generación de claves 100 genera k*1,0 en (S302) y k*1,j (j = p1, ..., n-1) en (S303).
Sin embargo, el dispositivo de generación de claves 100 puede generar claves de L-ésimo nivel (L > 2) en lugar de las claves de primer nivel. Es decir, el dispositivo de generación de claves 100 puede generar k*L,0 en (S302) y k*L,j (j = pl, ..., n-1) en (S303).
Es decir, en (S302), usando el dispositivo de procesamiento y basándose en la clave pública maestra pk, la clave secreta maestra sk y los vectores de predicado (v^ 1, ..., v^_) que se muestran en la fórmula 121, la unidad de generación de vectores de claves 130 puede calcular la fórmula 122 para generar el vector de clave k*L,0 que es el primer elemento de la clave secreta de L-ésimo nivel (nivel L).
[Fórmula 121]
Figure imgf000038_0001
[Fórmula 122]
Figure imgf000038_0002
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk, la clave secreta maestra sk y los vectores de predicado (v^1, ..., v^ l) que se muestran en la fórmula 121, la unidad de generación de vectores de generación de claves 140 puede calcular la fórmula 123 para generar cada vector de generación de claves k*L,j para generar una clave secreta de nivel inferior.
[Fórmula 123]
Figure imgf000038_0003
Para resumir, en (S302) y (S303), utilizando el dispositivo de procesamiento, la unidad de generación de vectores de claves 130 y la unidad de generación de vectores de generación de claves 140 pueden ejecutar el algoritmo GenKey que se muestra en la fórmula 124 para generar la clave secreta de L-ésimo nivel (información de clave k^*L incluyendo el vector de clave k*L,0 y los vectores de generación de claves k*L,j.
[Fórmula 124]
Figure imgf000039_0001
En la siguiente descripción, también se asumirá que el dispositivo de generación de claves 100 genera las claves secretas de primer nivel mediante el algoritmo GenKey. Sin embargo, en la siguiente descripción, el dispositivo de generación de claves 100 puede generar las claves secretas de L-ésimo nivel.
El sistema de procesamiento criptográfico 10 según esta realización puede modificarse para implementar un esquema HPE, como se describe a continuación.
La figura 19 es un diagrama de bloques funcional que muestra funciones del sistema de procesamiento criptográfico 10 que implementa el esquema HPE. El dispositivo de generación de claves 100 y el dispositivo de delegación de claves 400 del sistema de procesamiento criptográfico 10 mostrado en la figura 19 son los mismos que el dispositivo de generación de claves 100 y el dispositivo de delegación de claves 400 del sistema de procesamiento criptográfico 10 mostrado en la figura 10. El dispositivo de encriptado 200 del sistema de procesamiento criptográfico 10 mostrado en la figura 19 no incluye la unidad de generación de clave de sesión 240 incluida en el dispositivo de encriptado 200 del sistema de procesamiento criptográfico 10 mostrado en la figura 10. El dispositivo de desencriptado 300 del sistema de procesamiento criptográfico 10 mostrado en la figura 19 incluye una unidad de cálculo de logaritmo discreto 340, además de las funciones incluidas en el dispositivo de desencriptado 300 del sistema de procesamiento criptográfico 10 mostrado en la figura 10.
La figura 20 es un diagrama de flujo que muestra las operaciones del dispositivo de encriptado 200 mostrado en la figura 19. La figura 21 es un diagrama de flujo que muestra las operaciones del dispositivo de desencriptado 300 mostrado en la figura 19. Las operaciones del dispositivo de generación de claves 100 y del dispositivo de delegación de claves 400 son las mismas que las del dispositivo de generación de claves 100 y el dispositivo de delegación de claves 400 del sistema de procesamiento criptográfico 10 mostrado en la figura 10, de modo que se omitirá su descripción.
En (S701), usando el dispositivo de procesamiento, la unidad de configuración de información de transmisión 210 del dispositivo de encriptado 200 genera un vector de mensaje mv configurando un mensaje m como el coeficiente del vector de base bn, en lugar de la información de transmisión p de (S401). En (S702), la unidad de generación de vectores de cifrado 220 genera un vector de información de atributo xv y un vector de números aleatorios rv, como en (S402). Luego, usando el dispositivo de procesamiento, la unidad de generación de vectores de cifrado 220 genera un vector de cifrado c añadiendo el vector de información de atributo generado xv y el vector de números aleatorios generado rv al vector de mensajes mv. En (S703), la unidad de transmisión de datos 230 transmite el vector de cifrado c generado al dispositivo de desencriptado 300 a través del dispositivo de comunicación, como en (S402).
En (S801), la unidad de entrada de vector 310 del dispositivo de desencriptado 300 recibe a través del dispositivo de comunicación e introduce el vector de cifrado c, como en (S501). En (S802), usando el dispositivo de procesamiento, la unidad de operación de emparejamiento 330 realiza la operación de emparejamiento e, que empareja los espacios V y V* incluidos en la clave pública maestra pk, en el vector de cifrado c y en el vector de clave k*L,0, como en (S502). Entonces, la unidad de almacenamiento de vectores de claves 320 obtiene información f (= um) sobre el mensaje m. En (S803), la unidad de cálculo de logaritmo discreto 340 resuelve un problema de logaritmo discreto para basar u en f para calcular el mensaje m. Es decir, la unidad de cálculo de logaritmo discreto 340 calcula la fórmula 125.
[Fórmula 125]
/n ’ = D lo g g ( / )
Figure imgf000040_0001
Diogx (y) indica la resolución de un problema de logaritmo discreto para basar x en y.
El mensaje m que se introducirá aquí será un valor menor que un número entero pequeño predeterminado t tal que 0 < m < t. Esto se debe a que, como se describió anteriormente, el dispositivo de desencriptado 300 necesita resolver el problema del logaritmo discreto al calcular el mensaje m. Es decir, si el mensaje m puede establecerse libremente, el dispositivo de desencriptado 300 requerirá una gran cantidad de tiempo para calcular el mensaje m. Por consiguiente, limitando el mensaje m a valores menores que el número entero pequeño predeterminado t, el mensaje m puede calcularse en un corto período de tiempo incluso cuando se buscan e investigan todos los valores posibles que el mensaje m puede tomar.
En general, se sabe que son posibles varias aplicaciones incluso cuando el mensaje m se limita a valores pequeños de esta manera.
En el ejemplo descrito anteriormente, el mensaje m se establece solo en un vector de base bn. Sin embargo, basándose en la descripción anterior, el mensaje m puede establecerse fácilmente en una pluralidad de vectores básicos.
En los esquemas HPKEM y HPE descritos anteriormente, no se utilizan mapas de distorsión que se han descrito como una de las condiciones de DDVS. Los mapas de distorsión no se utilizan en los algoritmos para implementar los procesos criptográficos, sino para probar la seguridad de los procesos criptográficos. Así, los esquemas HPKEM y HPE descritos anteriormente se pueden establecer en un espacio sin mapas de distorsión. Es decir, no es imprescindible que existan mapas de distorsión en un espacio para implementar los esquemas HPKEM y HPE descritos anteriormente.
Tercera realización
En esta realización, se describirá la seguridad del esquema HPKEM descrito en la segunda realización.
En esta realización, se describirá primero una propiedad de corrección de un esquema HPKEM. A continuación, se describirá que el HPKEM descrito en la segunda realización satisface esta propiedad de corrección. Luego, se describirá "seguridad de ocultación de atributos" en el esquema HPKEM. Luego, como criterio de seguridad, se definirá una propiedad de ocultación adaptativa de atributos frente a ataques de texto sin formato elegido (CPA). El esquema HPKEM descrito en la segunda realización oculta de forma adaptativa los atributos frente a CPA. Propiedad de corrección de un esquema HPKEM
Se requiere un esquema HPKEM para satisfacer una condición que se muestra en la fórmula 126.
[Fórmula 126]
Figure imgf000040_0002
Figure imgf000040_0003
entonces K' K excepto por una probabilidad insignificante.
Propiedad de corrección del esquema HPKEM descrito en la segunda realización
Se describirá que el esquema HPKEM descrito en la segunda realización satisface la propiedad de corrección descrita anteriormente.
En la siguiente descripción, se utilizará una notación que se muestra en la fórmula 127.
[Fórmula 127]
Figure imgf000041_0001
Primero, se describirá que se cumple el lema 1 que se muestra a continuación.
Lema 1
Permítase que L sea 1 < L < d. Una clave secreta de L-ésimo nivel que se muestra en la fórmula 128 viene dada por una combinación lineal con coeficientes $l,u e Fq de ecuaciones que se muestran en la fórmula 129.
[Fórmula 128]
(*¿,0» *£,//£ » -- ,* ¿ , ii- l)
[Fórmula 129]
Figure imgf000041_0002
Explicación para demostrar que se cumple el lema 1
La inducción en L se utilizará para explicar que se cumple el lema 1.
Para L = 1, se cumple la fórmula 130. Por lo tanto, se cumple el lema 1.
[Fórmula 130]
*1,0 = crl,0ví + K>
1 * * . j *
*U =°7,/qvl +b¿
i = U \ , " - , n - 1
Se supone que el lema 1 se cumple en el caso de L-1. Es decir, se cumple la fórmula 131.
[Fórmula 131]
Figure imgf000041_0003
Entonces, se cumple la fórmula 132.
[Fórmula 132]
Figure imgf000042_0001
donde
Figure imgf000042_0002
0L,0,L - OL,0.
Esto muestra que la fórmula 129 se cumple para k*L,0. Argumentos similares muestran que la fórmula 129 se cumple para k*L,i (i = pl, ..., n-1).
Lema 2
El esquema HPKEM descrito en la segunda realización satisface la propiedad de corrección descrita anteriormente.
Explicación para demostrar que se cumple el lema 2
Permítase que c sea una clave de sesión encapsulada correspondiente a un vector de atributo x^_x que se muestra en la fórmula 133. Por la ortonormalidad de las bases B y B*, es decir, fórmula 134 y lema 1, una clave de sesión K' desencapsulada se expresa como se muestra en la fórmula 135.
[Fórmula 133]
Figure imgf000042_0003
[Fórmula 134]
Figure imgf000042_0004
[Fórmula 135]
Figure imgf000042_0005
Para la clave de Lv-ésimo nivel
Figure imgf000042_0006
Por lo tanto, se cumple la fórmula 136.
[Fórmula 136]
Figure imgf000043_0001
entonces K' = K.
Aquí, si la fórmula 137 se cumple, entonces se cumple la fórmula 138.
[Fórmula 137]
Figure imgf000043_0002
[Fórmula 138]
x j ■ v j & 0
para algunos j tal que 1 < j < Lv excepto por una probabilidad insignificante.
Esto se debe a que, en la fórmula 135, la fórmula 139 es uniformemente aleatoria en Fq y K' es uniformemente aleatorio en Gt.
[Fórmula 139]
p i v ,o, A ( x , - ' v )
Si la fórmula 140 se cumple, existe j como se muestra en la fórmula 141 por definición.
[Fórmula 140]
r (ñ ....'J/v ) (x '......*a ) = 0
donde
Lv < Lx.
[Fórmula 141]
Figure imgf000043_0003
donde
1< j < Lv.
Por lo tanto, solo se considera el caso en que Lv > Lx. Si Lv > Lx, el vector (no atributo) usado en c que se muestra en la fórmula 142 es uniformemente aleatorio.
[Fórmula 142]
Figure imgf000043_0004
Además, un predicado que se muestra en la fórmula 143 es distinto de cero.
[Fórmula 143]
Figure imgf000043_0005
Por lo tanto, la fórmula 144 se cumple excepto por una probabilidad insignificante.
[Fórmula 144]
Figure imgf000044_0001
Seguridad para ocultar atributos
La seguridad de ocultación de atributos para un esquema HPKEM significa que un vector de atributo utilizado para generar un texto cifrado (un vector encriptado) permanece oculto. Es decir, en un esquema HPKEM con seguridad de ocultación de atributos, incluso si un adversario A obtiene el texto cifrado, no se puede conocer el vector de atributo utilizado para generar el texto cifrado, así como la información sobre la información de transmisión p (clave de sesión K).
La definición precisa de seguridad de ocultación de atributos para un esquema de mecanismo de encapsulación de clave de predicado se analiza en la Bibliografía no relacionada con patentes 19.
La Bibliografía no relacionada con patentes 19 no tiene en cuenta la noción de "jerárquico". Por lo tanto, para tener en cuenta la noción de "jerárquico", es decir, un proceso de delegación de claves, la definición de seguridad de ocultación de atributos para el esquema del mecanismo de encapsulación de claves predicado analizado en la Bibliografía no relacionada con patentes 19 se generalizará para cubrir un esquema HPKEM tratando con dos casos (1) y (2) que se muestran en la fórmula 145. En la siguiente descripción, se utilizará un bit t para conmutar entre los dos casos.
[Fórmula 145]
Figure imgf000044_0002
Para k í T,
fv(fc)(x(ü)) = fy/<Xx(1)) = 0, y m(0) = m(1),
Definición de ocultación adaptativa de atributos frente a CPA
Un esquema HPKEM para predicados jerárquicos F sobre atributos jerárquicos £ oculta de forma adaptativa atributos frente a CPA si para todos los adversarios probabilísticos A en tiempo polinomial, la ventaja de A en el siguiente experimento (juego de ocultación adaptativa de atributos contra CPA) es insignificante en un parámetro de seguridad.
Experimento: Juego de ocultación adaptativa de atributos frente a CPA
1. El algoritmo Setup se ejecuta para generar una clave pública maestra pk y una clave secreta maestra sk. La clave pública maestra pk se entrega a un adversario A.
2. El adversario A puede solicitar de forma adaptativa claves correspondientes a los vectores mostrados en la fórmula 146.
[Fórmula 146]
Figure imgf000045_0001
En respuesta a esta solicitud, el adversario A recibe las claves correspondientes que se muestran en la fórmula 147.
[Fórmula 147]
Figure imgf000045_0002
3. El adversario A genera la fórmula 149, sujeta a las restricciones que se muestran en la fórmula 148.
[Fórmula 148]
Figure imgf000045_0003
Si t = 1, existe un conjunto no vacío T c {1, ...,v},
o Para cualquier k e T,
Figure imgf000045_0004
[Fórmula 149]
Figure imgf000045_0005
4. Se elige un bit aleatorio 0 y se calcula la fórmula 150.
[Fórmula 150]
Figure imgf000046_0001
Luego, se elige aleatoriamente una clave K' de un espacio de clave de sesión asociada, como se muestra en la fórmula 151.
[Fórmula 151]
Si T= 0, A se da entonces lo siguiente:
si <9=0, ( cq. ^ o)»
si 0 = 1, {ch K').
Si T= 1, A se da entonces lo siguiente:
é>=o,(c0,/:0),
0 = 1 , (ci.ATi).
5. El adversario A puede continuar solicitando claves para los vectores que se muestran en la fórmula 152, sujeta a las restricciones dadas anteriormente.
[Fórmula 152]
Figure imgf000046_0002
¿ = n i ?...,v, i <¿£)<d
6. El adversario A genera un bit 0', y tiene éxito si 0' = 0.
La ventaja del adversario A se define como se muestra en la fórmula 153.
[Fórmula 153]
A d v^PKEM>CPA (A) := |Pr[0 ' = 0 ] - 1/2
El esquema HPKEM descrito en la segunda realización oculta de forma adaptativa los atributos frente a CPA. Cuarta realización
En esta realización, se describirá un esquema HPE de alta seguridad adaptado del esquema HPKEM descrito en la segunda realización. En este caso, la alta seguridad significa la ocultación adaptativa de atributos frente a ataques de texto cifrado (CCA) elegidos, que se describirán en una realización posterior.
En primer lugar, se describirán los siguientes cuatro conceptos para implementar un esquema HPE que oculta atributos de forma adaptativa frente a CCA: (1) autentificación de mensajes segura, (2) esquema de encapsulación segura, (3) encriptado de clave simétrica segura y (4) función de derivación de clave segura. Como se describirá a continuación, los conceptos de (1) a (4) se analizan en la bibliografía de la técnica anterior. Por lo tanto, se describirán brevemente.
Luego, utilizando los cuatro conceptos anteriores, se describirá el sistema de procesamiento criptográfico 10 para implementar el esquema HPE que oculta de forma adaptativa los atributos frente a CCA.
(1) Autentificación segura de mensajes
Permítase que (Mac, Vrfy) sea un código de autentificación de mensajes seguro frente a ataques de mensajes elegidos por única vez. La definición del código de autentificación de mensajes seguro frente a ataques de mensajes elegidos por única vez se analiza en la Bibliografía no relacionada con patentes 7.
(Mac, Vrfy) son un par de procesos, cada uno de los cuales opera como se describe a continuación.
Mac es un proceso que cifra datos y genera información de autentificación. Macclave(x) encripta los datos x mediante una clave. Es decir, cuando y = Macclave(x), los datos y son datos (información de autentificación) generados al encriptar los datos x mediante la clave.
Vrfy es un proceso que verifica la información de autentificación generada por Mac. Cuando y = Macclave(x), Vrfyclave'(x', y') devuelve 1 si x = x', y = y' y clave = clave', y devuelve 0 si no se cumplen cualquiera de x = x', y = y' y clave = clave'.
(2) Esquema de encapsulación segura
Permítase que (Setupenc, Senc, Renc) sea un esquema de encapsulación segura. La primera información de verificación com, la segunda información de verificación dec y la tercera información de verificación r se utilizarán junto con (Setupenc, Senc, Renc). La definición del esquema de encapsulación segura se analiza en la Bibliografía no relacionada con patentes 7.
(Setupenc, Senc, Renc) son un conjunto de procesos, cada uno de los cuales opera como se describe a continuación. Setupenc toma como entrada un parámetro de seguridad 1k, y selecciona y genera aleatoriamente un conjunto de cadenas.
Senc toma como entrada 1k y el conjunto de cadenas, y selecciona y genera aleatoriamente la primera información de verificación com, la segunda información de verificación dec y la tercera información de verificación r e {0, 1}k. Renc toma como entrada el conjunto de cadenas, la primera información de verificación com y la segunda información de verificación dec, y genera una tercera información de verificación r e {0, 1}ku{±}. Renc genera una tercera información de verificación r e {0, 1}k si la entrada es la emisión del conjunto de cadenas por Setupenc y la primera información de verificación com y la segunda información de verificación dec emitida por Senc basado en este conjunto. Renc genera una tercera información de verificación r e { ! } si la entrada es cualquier otra información.
(3) Encriptado seguro de claves simétricas
Permítase que (SE, SD) sea un esquema de encriptado seguro de claves simétricas. La definición del esquema de encriptado seguro de claves simétricas se analiza en la Bibliografía no relacionada con patentes 1.
(SE, SD) son un par de procesos, cada uno de los cuales opera como se describe a continuación.
SE es un proceso de encriptado que utiliza una clave simétrica. SEclave(x) encripta los datos x mediante la clave simétrica. Cuando y = SEclave(x), los datos y son datos generados al encriptar los datos x mediante la clave simétrica.
SD es un proceso de desencriptado que utiliza la clave simétrica. SDclave(y) desencripta los datos y mediante la clave simétrica. Es decir, cuando y = SEclave(x), x = SDclave(y) se cumple.
(4) Función de derivación de claves seguras
Permítase que KDF sea una función de derivación de claves seguras. La definición de la función de derivación de claves seguras se analiza en la Bibliografía no relacionada con patentes 1.
KDF(x) es un proceso que genera una clave basada en los datos x. Cuando clave = KDF(x), la clave se genera basándose en los datos x.
Esquema de HPE que oculta atributos de forma adaptativa frente a CCA
Haciendo referencia a las figuras 22 a 25, 11 y 14, se describirán las funciones y operaciones del sistema de procesamiento criptográfico 10.
La figura 22 es un diagrama de bloques funcional que muestra las funciones del sistema de procesamiento criptográfico 10 según esta realización. El sistema de procesamiento criptográfico 10 incluye el dispositivo de generación de claves 100, el dispositivo de encriptado 200, el dispositivo de desencriptado 300 y el dispositivo de delegación de claves 400, como con el sistema de procesamiento criptográfico 10 según la segunda realización. También se supone en esta realización que el dispositivo de desencriptado 300 incluye el dispositivo de delegación de claves 400.
La figura 23 es un diagrama de flujo que muestra las operaciones del dispositivo de encriptado 200. La figura 24 es un diagrama de flujo que muestra las operaciones del dispositivo de desencriptado 300. Los flujos de operaciones del dispositivo de generación de claves 100 y del dispositivo de delegación de claves 400 son los mismos que los del dispositivo de generación de claves 100 y el dispositivo de delegación de claves 400 según la segunda realización. Por lo tanto, las operaciones del dispositivo de generación de claves 100 se describirán con referencia a la figura 11. Las operaciones del dispositivo de delegación de claves 400 se describirán con referencia a la figura 14.
La figura 25 es un diagrama conceptual que muestra una estructura de una base de DDVS.
Se describirán las funciones y operaciones del dispositivo de generación de claves 100. La configuración de las funciones del dispositivo de generación de claves 100 es la misma que la del dispositivo de generación de claves 100 según la segunda realización mostrada en la figura 10. El flujo de operaciones del dispositivo de generación de claves 100 es el mismo que el del dispositivo de generación de claves 100 según la segunda realización mostrada en la figura 11. Por lo tanto, las funciones y operaciones del dispositivo de generación de claves 100 se describirán con referencia a la figura 11.
S301: Etapa de generación de claves maestras
Usando el dispositivo de procesamiento, la unidad de generación de claves maestras 110 calcula la fórmula 154 para generar una clave pública maestra pk y una clave secreta maestra sk, y almacena las claves generadas en la unidad de almacenamiento de claves maestras 120.
[Fórmula 154]
Figure imgf000048_0001
Figure imgf000049_0001
(7)
Figure imgf000049_0002
retorno sk,pk
(1) a (5) mostrados en la fórmula 154 son los mismos que (1) a (5) mostrados en la fórmula 107, excepto que N = n 4, como se describirá más adelante. (6) Usando el dispositivo de procesamiento, la unidad de generación de claves maestras 110 ejecuta Setupenc para generar una información pública de cadenas. (7) La unidad de generación de claves maestras 110 designa la base B* generada como la clave secreta maestra sk, y (1 \ p^, V, V*, Gt, A, A*, q, B, pub) incluyendo la base B generada como clave pública maestra pk. Es decir, la clave pública maestra es diferente de la clave pública maestra pk generada por la unidad de generación de claves maestras 110 según la segunda realización en que se incluye la información pública de cadenas. La unidad de almacenamiento de claves maestras 120 almacena en el dispositivo de almacenamiento la clave pública maestra pk y la clave secreta maestra sk generada por la unidad de generación de claves maestras 110.
Se supone que hay un número N (= n 4) de dimensiones en DDVS, donde n indica el número de vectores de base asignados para representar la estructura jerárquica de un formato de jerarquía p^. Es decir, además del número n de vectores de base asignados para representar la estructura jerárquica, se proporcionan cuatro vectores de base. Por supuesto, el número de vectores de base puede incrementarse de manera adicional.
Como se muestra en la figura 25, del número N (= n 4) de vectores de base, el número n de vectores de base se asigna para representar la estructura jerárquica. La estructura de los vectores de base asignados para representar la estructura jerárquica es la misma que la estructura que se muestra en la figura 5. Uno de los cuatro vectores de base restantes (el vector de base n-ésimo) se utiliza para un mensaje m. Otro de los cuatro vectores de base restantes (el vector de base (n+1)-ésimo) se utiliza para aleatorizar un texto cifrado c. Otros dos vectores de base de los cuatro vectores de base restantes (los vectores de base (n+2)-ésimo y (n+3)-ésimo) se utilizan para la información de verificación (primera información de verificación com).
Para resumir, en (S301), la unidad de generación de claves maestras 110 ejecuta el algoritmo Setup mostrado en la fórmula 155 para generar la clave pública maestra pk y la clave secreta maestra sk.
S302: Etapa de generación de vectores de claves k*i,o
Al igual que con la segunda realización, utilizando el dispositivo de procesamiento, la unidad de generación de vectores de claves 130 calcula la fórmula 156 para generar un vector de clave k*1,0.
[Fórmula 156]
Figure imgf000050_0001
S303: Etapa de generación de vectores de generación de claves k*1, j
Al igual que con la segunda realización, utilizando el dispositivo de procesamiento, la unidad de generación de vectores de generación de claves 140 calcula la fórmula 157 para generar cada vector de generación de claves k*1,j.
[Fórmula 157]
Figure imgf000050_0002
donde j-ésimo elemento de la clave secreta de primer nivel.
Debe tenerse en cuenta que la unidad de generación de vectores de generación de claves 140 genera los vectores de generación de claves k*1,j (j = p1, ..., n-1, n+2, n+3). Es decir, la unidad de generación de vectores de generación de claves 140 difiere de la unidad de generación de vectores de generación de claves 140 mostrada en la figura 10 en que genera los vectores de generación de claves k*1,n+2 y k*1,n+3.
Para resumir, en (S302) y (S303), utilizando el dispositivo de procesamiento, la unidad de generación de vectores de claves 130 y la unidad de generación de vectores de generación de claves 140 ejecutan el algoritmo GenKey que se muestra en la fórmula 158 para generar una clave secreta de primer nivel (información de clave k^ *1) incluyendo el vector de clave k*1,0 y los vectores de generación de claves k*1,j.
[Fórmula 158]
Figure imgf000050_0003
S304: Etapa de distribución de claves
Al igual que con la unidad de distribución de claves 150 de la segunda realización, la unidad de distribución de claves 150 transmite la clave pública maestra generada por la unidad de generación de claves maestras 110 y la información de clave k^ *1 generada por la unidad de generación de vectores de claves 130 y la unidad de generación de vectores de generación de claves 140 al dispositivo de desencriptado 300 a través del dispositivo de comunicación. La unidad de distribución de claves 150 también transmite la clave pública maestra al dispositivo de encriptado 200 a través del dispositivo de comunicación.
Se describirán las funciones y operaciones del dispositivo de encriptado 200. El dispositivo de encriptado 200 incluye una unidad de generación de información de verificación 250, una unidad de configuración de información de verificación 260 y una unidad de generación de información de firmas 270 (una unidad de generación c2, una unidad de generación c3 y una unidad de generación c4), además de las funciones incluidas en el dispositivo de encriptado 200 según la segunda realización mostrada en la figura 10.
S901: Etapa de generación de información de verificación
Usando el dispositivo de procesamiento, la unidad de generación de información de verificación 250 calcula la fórmula 159 para generar la primera información de verificación com, la segunda información de verificación dec y la tercera información de verificación r.
[Fórmula 159]
Figure imgf000051_0001
Es decir, usando el dispositivo de procesamiento, la unidad de generación de información de verificación 250 ejecuta Senc(1A, pub) en la entrada de la información pública de cadenas incluida en la clave pública maestra, para generar la primera información de verificación com, la segunda información de verificación dec y la tercera información de verificación r.
S902: Etapa de configuración de la información de transmisión
Al igual que con la segunda realización, utilizando el dispositivo de procesamiento, la unidad de configuración de información de transmisión 210 calcula la fórmula 160 para generar un vector de información de transmisión pv.
[Fórmula 160]
p ^ 5— F / 3 ,
pv := pbn
S903: Etapa de configuración de la información de verificación
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk, la unidad de configuración de información de verificación 260 calcula la fórmula 161 para generar un vector de información de verificación cv.
[Fórmula 161]
( 1)
Figure imgf000051_0002
(2)
n > ~ S n 2 (& n 2 C O m * n 3 )
Es decir:
(1) utilizando el dispositivo de procesamiento, la unidad de configuración de información de verificación 260 genera un número aleatorio 5n+2.
(2) Utilizando el dispositivo de procesamiento, la unidad de configuración de información de verificación 260 genera el vector de información de verificación cv estableciendo un valor predeterminado (1 en este caso) aleatorizado por el número aleatorio 5n+2 como el coeficiente del vector de base bn+2 en la base B incluida en la clave pública maestra pk, y también configurando la primera información de verificación com aleatorizada por el número aleatorio 5n+2 como el coeficiente del vector de base bn+3.
S904: Etapa de generación de vector de cifrado (datos c1)
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk y los vectores de atributos x ^ i a x^ l (x^i (i = 1, ..., L) (= (x0 , ..., xi) (i = pi_-1))) (donde L indica la profundidad de la jerarquía), la unidad de generación de vectores de cifrado 220 calcula la fórmula 162 para generar un vector de cifrado c.
[Fórmula 162]
O)
Figure imgf000052_0001
donde
X (X1,..., X l): = ((X0 , ...,XAy1-1), ..., X l-1, ...,X^l-1)): vector de atributo.
(3)
^ •“ ^ n l^ n l
(4)
Figure imgf000052_0002
donde
C1: datos c1 (vector de cifrado c).
Es decir:
(1) al igual que con la segunda realización, utilizando el dispositivo de procesamiento, la unidad de generación de vectores de cifrado 220 genera números aleatorios x^¡ (i = L 1, ..., d) y 5i (i = 1, ..., d, n+1).
(2) Al igual que con la segunda realización, la unidad de generación de vectores de cifrado 220 genera un vector de información de atributo xv estableciendo cada elemento de los vectores de atributos como el coeficiente de cada vector de base bi (i = 0, .., pl-1) en la base B incluida en la clave pública maestra pk, y también estableciendo cada número aleatorio como el coeficiente de cada vector de base bi (i = pl, ..., n-1).
(3) Al igual que con la segunda realización, utilizando el dispositivo de procesamiento, la unidad de generación de vectores de cifrado 220 genera un vector de números aleatorios rv estableciendo un número aleatorio como el coeficiente del vector de base bn+i en la base B incluida en la clave pública maestra pk.
(4) Usando el dispositivo de procesamiento, la unidad de generación de vectores de cifrado 220 genera el vector de cifrado c (datos c1) agregando el vector de información de atributo generado xv, el vector de números aleatorios generado rv, el vector de información de transmisión pv generado por la configuración de información de transmisión unidad 210, y el vector de información de verificación cv generado por la unidad de configuración de información de verificación 260.
S905: Etapa de generación de clave de sesión
Usando el dispositivo de procesamiento, la unidad de generación de clave de sesión 240 calcula la fórmula 163 para generar una clave de sesión K.
[Fórmula 163]
K \ = u P
donde
u:=e(g1g2)*1.
S906: Etapa de generación de datos c2
Usando el dispositivo de procesamiento, la unidad de generación de información de firmas 270 calcula la fórmula 164 para generar datos c2.
[Fórmula 164]
c 2 : = S E K D F ( jq ( m , d e c )
donde
m: mensaje.
Es decir, utilizando el dispositivo de procesamiento, la unidad de generación de información de firmas 270 ejecuta KDF mediante la clave de sesión K para generar una clave simétrica. Usando el dispositivo de procesamiento, la unidad de generación de información de firmas 270 ejecuta SE mediante la clave simétrica generada para generar datos c2 encriptando un mensaje m y la segunda información de verificación dec.
S907: Etapa de generación de datos c3
La unidad de generación de información de firmas 270 designa la primera información de verificación com como datos c3.
S908: Etapa de generación de datos c4
Usando el dispositivo de procesamiento, la unidad de generación de información de firmas 270 calcula la fórmula 165 para generar datos c4.
[Fórmula 165]
Figure imgf000053_0001
Es decir, usando el dispositivo de procesamiento y basándose en la tercera información de verificación r, la unidad de generación de información de firmas 270 encripta los datos c1 generados por la unidad de generación de vectores de cifrado 220 y los datos c2 generados por la unidad de generación de información de firmas 270. S909: Etapa de transmisión de datos
La unidad de transmisión de datos 230 transmite los datos c1 generados por la unidad de generación de vectores de cifrado 220 y los datos c2, c3 y c4 generados por la unidad de generación de información de firmas 270 al dispositivo de desencriptado 300 a través del dispositivo de comunicación.
En resumen, el dispositivo de encriptado 200 calcula el algoritmo Enc que se muestra en la fórmula 166 para generar los datos c1, c2, c3 y c4.
[Fórmula 166]
Figure imgf000054_0001
Se describirán las funciones y operaciones del dispositivo de desencriptado 300. El dispositivo de desencriptado 300 incluye una unidad de deformación de vectores 350, una unidad de desencriptado 360 (una unidad de desencriptado c2) y una unidad de verificación de manipulación 370, además de las funciones incluidas en el dispositivo de desencriptado 300 según la segunda realización mostrada en la figura 10.
S1001: Etapa de entrada de vectores
Al igual que con la segunda realización, la unidad de entrada de vectores 310 recibe a través del dispositivo de comunicación e introduce los datos c1, c2, c3 y c4 transmitidos por la unidad de transmisión de datos 230 del dispositivo de encriptado 200.
S1002: Etapa de deformación de vectores de claves
Usando el dispositivo de procesamiento, la unidad de deformación de vectores 350 calcula la fórmula 167 para deformar el vector de clave k*L,0.
[Fórmula 167]
Figure imgf000054_0002
donde
k L , 0 : primer elemento de la clave secreta de L-ésimo nivel después de deformarse,
* Í ,0 : primer elemento de la clave secreta de L-ésimo nivel antes de deformarse,
^ L , 5 n 2 : f( ,n+ i 02V ) ,-eé .simo elemento de la clave secreta de L-ésimo nivel, y
L ,n + 3 ' (n+3)-ésimo elemento de la clave secreta de L-ésimo nivel.
Es decir, la unidad de deformación de vectores 350 deforma el vector de clave k*L,0 que es el primer elemento de la clave secreta de L-ésimo nivel mediante el uso de los datos c3 (información de verificación com), de modo que la información de verificación com establecida por la unidad de generación de información de verificación 250 del dispositivo de encriptado 200 desaparece por la operación de emparejamiento para ser realizada en una etapa posterior (tal que el producto interno se convierte en 0 entre los vectores de base bn+2, bn+3 y los vectores de base b*n+2, b*n+3 en el que se establece la información que incluye la información de verificación com).
S1003: Etapa de operación de emparejamiento
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk y el vector de clave deformado k*L 0 , la unidad de operación de emparejamiento 330 calcula la fórmula 168 para generar una clave de sesión K'(= K).
[Fórmula 168]
K ’ ~ e ( c h k i fi)
Es decir, utilizando el dispositivo de procesamiento, la unidad de operación de emparejamiento 330 calcula la clave de sesión K' realizando la operación de emparejamiento e, que empareja los espacios V y V* incluidos en la clave pública maestra pk, en el dato c1 (vector de cifrado c) introducido por la unidad de entrada de vector 310 y el vector de clave k*L,0 deformado en (S1002).
Si los datos c1 no han sido manipulados, la información que incluye la información de verificación com establecida en los datos c1 (información establecida en los vectores de base bn+2, bn+3) desaparece como resultado de la operación de emparejamiento, porque la unidad de deformación de vectores 350 ha deformado el vector de clave. Por tanto, si los datos c1 no han sido manipulados, la unidad de operación de emparejamiento 330 puede generar la clave de sesión K que es idéntica a la clave de sesión K generada por el dispositivo de encriptado 200.
S1004: etapa de desencriptado c2
Usando el dispositivo de procesamiento, la unidad de desencriptado 360 calcula la fórmula 169 para desencriptar los datos c2.
[Fórmula 169]
( m ' , d e c ' ) : = S D K D F^ ( c 2 )
Es decir, utilizando el dispositivo de procesamiento, la unidad de desencriptado 360 ejecuta KDF mediante la clave de sesión K para generar una clave simétrica. Usando el dispositivo de procesamiento, la unidad de desencriptado 360 ejecuta SD mediante la clave simétrica generada para generar un mensaje m' (= m) y una segunda información de verificación dec' (= dec). Es decir, si los datos c1 no han sido manipulados, la clave de sesión K se ha generado correctamente y los datos c2 no han sido manipulados, se generan el mensaje m y la segunda información de verificación incrustada en los datos c2 mediante el dispositivo de encriptado 200.
SI005: Etapa de verificación de manipulación
Usando el dispositivo de procesamiento, la unidad de verificación de manipulación 370 determina si la fórmula 170 y la fórmula 171 se cumplen para verificar que los datos c1, c2, c3 y c4 no han sido manipulados. Es decir, la unidad de verificación de manipulación 370 verifica que el mensaje m no ha sido manipulado.
[Fórmula 170]
r ' • = Tiene (P U b ,c j,d e c ')
r ' * ±
[Fórmula 171]
Figure imgf000055_0001
Es decir:
(1) utilizando el dispositivo de procesamiento y basándose en la información pública de la cadena incluida en la clave pública maestra pk, los datos c3 (primera información de verificación com) recibidos desde el dispositivo de encriptado 200 y la segunda información de verificación generada dec', la unidad de verificación de manipulación 370 ejecuta Renc para generar la tercera información de verificación r' (= r), como se muestra en la fórmula 170. Si los datos c3 no han sido manipulados y la segunda información de verificación dec' es válida, se genera la tercera información de verificación r generada por el dispositivo de encriptado 200 al ejecutar Senc. Por otro lado, si los datos c3 han sido manipulados, o la segunda información de verificación dec' no es válida, se genera un símbolo distinguido 1, en lugar de la tercera información de verificación r. Es decir, si se generan datos distintos del símbolo distinguido 1, la unidad de verificación de manipulación 370 puede determinar que estos datos son la tercera información de verificación válida r generada por el dispositivo de encriptado 200 ejecutando Senc.
(2) Usando el dispositivo de procesamiento y basándose en la tercera información de verificación generada r' y los datos c1, c2 y c4 recibidos desde el dispositivo de encriptado 200, la unidad de verificación de manipulación 370 ejecuta Vrfy como se muestra en la fórmula 171. Si la tercera información de verificación r' es válida y los datos c1, c2 y c4 no han sido alterados, el resultado de ejecutar Vrfy se convierte en 1. Por otro lado, si la tercera información de verificación r' no es válida, o cualquiera de los datos c1, c2 o c4 ha sido alterado, el resultado de ejecutar Vrfy se convierte en 0.
Si se genera la tercera información de verificación válida r y el resultado de ejecutar Vrfy es 1, la unidad de verificación de manipulación 370 determina que el mensaje m' generado es idéntico al mensaje m transmitido por el dispositivo de encriptado 200. Si la unidad de verificación de manipulación 370 determina que el mensaje m' es idéntico al mensaje m, genera el mensaje m'. Por otro lado, si la unidad de verificación de manipulación 370 determina que el mensaje m' es diferente del mensaje m, genera el símbolo distinguido 1.
En resumen, el dispositivo de desencriptado 300 ejecuta el algoritmo Dec mostrado en la fórmula 172 para generar el mensaje m' o el símbolo distinguido 1.
[Fórmula 172]
Figure imgf000056_0001
Se describirán las funciones y operaciones del dispositivo de delegación de claves 400. La configuración de las funciones del dispositivo de delegación de claves 400 es la misma que la del dispositivo de delegación de claves 400 según la segunda realización mostrada en la figura 10. El flujo de las operaciones del dispositivo de delegación de claves 400 es el mismo que el del dispositivo de delegación de claves 400 según la segunda realización mostrada en la figura 14. Por lo tanto, las funciones y operaciones del dispositivo de delegación de claves 400 se describirán con referencia a la figura 14.
S601: Etapa de adquisición de vectores de claves k*L, o
Al igual que con la segunda realización, la unidad de adquisición de vectores de claves 410 adquiere, a través del dispositivo de comunicación, la clave secreta de L-ésimo nivel (información de clave k ^ \) incluyendo el vector de clave k*L,0 que es el primer elemento de la clave secreta de L-ésimo nivel y los vectores de generación de claves k*L,j que son los j-ésimos (j = p1, ..., n-1) elementos de la clave secreta de L-ésimo nivel.
S602: Etapa de generación de vectores de claves k*L+ 1 , 0
Al igual que con la segunda realización, utilizando el dispositivo de procesamiento, la unidad de generación de vectores de claves 420 calcula la fórmula 173 para generar un vector de clave k*L+1, 0 que es el primer elemento de una clave secreta de (L+1)-ésimo nivel.
[Fórmula 173]
(1)
Figure imgf000056_0002
Figure imgf000057_0001
donde
*
* 1 1 ,0 : primer elemento de la clave secreta de (L+1)-ésimo nivel,
* 1 , 0 : primer elemento de la clave secreta de L-ésimo nivel,
’ j-ésimo elemento de la clave secreta de L-ésimo nivel, y
vi(i = ^ l, ..., yvL+1 - 1): vector de predicado.
S603: Etapa de generación de vectores de generación de claves k*L, j
Al igual que con la segunda realización, utilizando el dispositivo de procesamiento, la unidad de generación de vectores de generación de claves 430 calcula la fórmula 174 para generar cada vector de generación de claves k*L+1, j. El vector de generación de claves k*L+1, j es el j-ésimo elemento de la clave secreta de (L+1)-ésimo nivel.
[Fórmula 174]
Figure imgf000057_0002
donde
Figure imgf000057_0003
j-ésimo elemento de la clave secreta de (L+1)-ésimo nivel,
Figure imgf000057_0004
j-ésimo elemento de la clave secreta de L-ésimo nivel, y
vi(i = /vl,...jvl+1 -1): vector de predicado L+1.
Debe tenerse en cuenta que la unidad de generación de vectores de generación de claves 430 genera los vectores de generación de claves k*L+i, j (j = pl+1, ..., n-1, n+2, n+3). Es decir, la unidad de generación de vectores de generación de claves 140 difiere de la unidad de generación de vectores de generación de claves 140 mostrada en la figura 10 en que genera los vectores de generación de claves k*L+1, n+2 y k*L+1, n+3.
Para resumir, en (S602) y (S603), la unidad de generación de vectores de claves 420 y la unidad de generación de vectores de claves 430 ejecutan el algoritmo DelegateL que se muestra en la fórmula 175 para generar la clave secreta de (L+1)-ésimo nivel (información de clave k^Vn) incluyendo el vector de clave k*L+1 ,0 y los vectores de generación de claves k*L+1, j.
[Fórmula 175]
Figure imgf000058_0001
S604: Etapa de distribución de claves
Al igual que con la segunda realización, la unidad de distribución de claves 440 transmite la información de clave k^*L+i generada por la unidad de generación de vectores de claves 420 y la unidad de generación de vector de generación de claves 430 al dispositivo de desencriptado 300 de un nivel inferior a través del dispositivo de comunicación.
Como se ha descrito, el sistema de procesamiento criptográfico 10 según esta realización implementa el esquema HPE adaptado del esquema HPKEM descrito en la segunda realización. El esquema HPE descrito en esta realización es un esquema criptográfico de alta seguridad que oculta atributos de forma adaptativa frente a CCA. El esquema HPE descrito anteriormente se construye a partir del esquema HPKEM descrito en la segunda realización aplicando el esquema analizado en la Bibliografía no relacionada con patentes 7. También se puede construir un esquema HPE de alta seguridad (que oculta atributos de forma adaptativa frente a CCA) a partir del esquema HPKEM descrito en la segunda realización aplicando el esquema analizado en la Bibliografía no relacionada con patentes 11. Los algoritmos de Setup, GenKey, Enc, Dec y DelegateL se describirán brevemente. En el sistema de procesamiento criptográfico 10 en el que el esquema analizado en la Bibliografía no relacionada con patentes 11 se aplica al esquema HPKEM descrito en la segunda realización, el esquema HPE se implementa utilizando un esquema seguro de firma de una sola vez. El término "seguro" aquí significa inolvidable. La definición del esquema seguro de firma de una sola vez se analiza en la Bibliografía no relacionada con patentes 11. Por lo tanto, se dará aquí una breve explicación.
Permítase que Sig: = (Gsig, Sign, Vrfy) sea un esquema seguro de firma de una sola vez. Cada uno de (Gsig, Sign, Vrfy) funciona como se describe a continuación.
Gsig(1A) es un proceso que genera claves (una clave de verificación vk y una clave de firma sk) para la autentificación de Fq.
Y = Signsk(x) es un proceso que genera información de firma Y para los datos x mediante la clave de firma sk. Vrfyvk(x, Y) es un proceso que devuelve 1 si la información de firma Y es la información de firma válida generada para los datos x por la clave de firma sk, y devuelve 0 si la información de firma Y no es la información de firma válida.
La Fórmula 176 muestra el algoritmo de Setup.
[Fórmula 176]
Setu
Figure imgf000059_0001
retorno sk,pk.
La Fórmula 177 muestra el algoritmo GenKey.
[Fórmula 177]
Figure imgf000059_0002
La Fórmula 178 muestra el algoritmo Enc.
[Fórmula 178]
Figure imgf000059_0003
La Fórmula 179 muestra el algoritmo Dec.
[Fórmula 179]
Dec(
Figure imgf000060_0001
&<r^~~Wqi kLfi := k lo + <r(vk
g := e(bnik i ¡0), f := e(cyk*L
Figure imgf000060_0002
Diog^(/)emsg?
w ' ~ D lo g g ( / ) s i se pasan ambas comprobaciones;
Figure imgf000060_0003
en caso contrario,
retomo m',
La Fórmula 180 muestra el algoritmo DelegateL.
Figure imgf000060_0004
El esquema HPE descrito anteriormente que oculta atributos de forma adaptativa frente a CCA puede modificarse a un esquema HPKEM reemplazando el mensaje m en el algoritmo Enc con un número aleatorio rn y cambiando la salida del algoritmo Dec a K'.
Por ejemplo, el esquema HPE construido a partir del esquema HPKEM descrito en la segunda realización aplicando el esquema analizado en la Bibliografía no relacionada con patentes 7 puede modificarse a un esquema HPKEM construyendo los algoritmos Enc y Dec como se muestra en las fórmulas 181 y 182.
[Fórmula 181]
Figure imgf000061_0001
K := uP .
c2 : = S E KD F(jí : ) ( m ,d e c ) ,C 3 := c o m ,c 4 := M a c r ( c b c 2 ) , retorno ( q t c 2 ,c 3 ,c 4 ).
[Fórmula 182]
Figure imgf000061_0002
Comprobar r ’ *_L? a V r fy r r ( ( q , c2 ) ,c 4 ) = 1?
retomo K ’ si ambas comprobaciones se pasan; J. en caso contrario.
No es necesario modificar los algoritmos de Setup, GenKey y DelegateL. En la descripción anterior, se utiliza el número aleatorio rn en lugar del mensaje m. El esquema HPE también se puede modificar a un esquema HPKEM simplemente eliminando el mensaje m en el algoritmo Enc, es decir, no usando m en el cálculo de los datos c2. El esquema HPE construido a partir del esquema HPKEM descrito en la segunda realización mediante la aplicación del esquema analizado en la Bibliografía no relacionada con patentes 11 se puede modificar fácilmente a un esquema HPKEM simplemente construyendo el algoritmo Enc de manera que genere el vector de cifrado c incrustando información de transmisión p en lugar del mensaje m, y construyendo el algoritmo Dec de manera que extraiga información up relativa a la información de transmisión p.
Quinta realización
En esta realización, se describirá la seguridad del esquema HPE descrito en la cuarta realización.
En esta realización, se describirá primero una propiedad de corrección del esquema HPE. Luego, como criterio de seguridad, se dará una definición de ocultación adaptativa de atributos contra ataques de texto cifrado (CCA) elegidos. A continuación, se describirá que el esquema HPE descrito en la cuarta realización oculta de forma adaptativa los atributos frente a CCA.
Propiedad de corrección de un esquema HPE
Se requiere un esquema HPE para satisfacer una condición que se muestra en la fórmula 183.
[Fórmula 183]
Figure imgf000062_0001
Si
Figure imgf000062_0002
entonces m' m para una probabilidad insignificante.
DeriveLv (donde Lv = Lv) se define, como se describe anteriormente, mediante el uso de GenKey y Delegatei. Definición de ocultación adaptativa de atributos frente a CCA
Un esquema HPE para predicados jerárquicos F sobre atributos jerárquicos Y se esconde de forma adaptativa de atributos contra c Ca si para todos los adversarios probabilísticos A en tiempo polinomial, la ventaja de A en el siguiente experimento (juego de ocultación de atributos adaptativa contra CCA) es insignificante en un parámetro de seguridad.
Experimento: Juego de ocultación adaptativa de atributos frente a CCA
1. El algoritmo Setup se ejecuta para generar una clave pública maestra pk y una clave secreta maestra sk. La clave pública maestra pk se entrega a un adversario A.
2. El adversario A puede solicitar de forma adaptativa claves correspondientes a los vectores mostrados en la fórmula 184.
[Fórmula 184]
Figure imgf000062_0003
En respuesta a esta solicitud, el adversario A recibe las claves correspondientes que se muestran en la fórmula 185.
[Fórmula 185]
Figure imgf000062_0004
3. El adversario puede consultar un texto cifrado c y los vectores de atributos mostrados en la fórmula 186 para solicitar de forma adaptativa desencriptar el texto cifrado c asociado con los vectores de atributos.
[Fórmula 186]
Figure imgf000062_0005
En respuesta a esta solicitud, el adversario A recibe un mensaje m' que se muestra en la fórmula 187.
[Fórmula 187]
Figure imgf000063_0001
donde
(vi, vlv) indica el predicado tal que
Figure imgf000063_0002
4. El adversario A genera la fórmula 189, sujeta a las restricciones que se muestran en la fórmula 188.
[Fórmula 188]
Figure imgf000063_0003
Si t = 1, existe un conjunto no vacío T c {1, ...,v},
Para cualquier k eT,
Figure imgf000063_0004
Para cualquier k g T,
Figure imgf000063_0005
m(0) = m(1)
[Fórmula 189]
Figure imgf000063_0006
5. Se elige un bit aleatorio 0, y al adversario A se le da ce como se muestra en la fórmula 190.
[Fórmula 190]
Figure imgf000064_0001
6. El adversario A puede continuar solicitando claves para los vectores que se muestran en la fórmula 191, sujeta a las restricciones dadas anteriormente.
[Fórmula 191]
Figure imgf000064_0002
7. El adversario A puede consultar un texto cifrado c y los vectores de atributos mostrados en la fórmula 192 para solicitar de forma adaptativa desencriptar el texto cifrado c asociado con los vectores de atributos.
[Fórmula 192]
Figure imgf000064_0003
donde
Figure imgf000064_0004
8. El adversario A genera un bit 0', y tiene éxito si 0' = 0.
Aquí, la ventaja del adversario A se define como la fórmula 193.
[Fórmula 193]
Adv” PE’CCA (A) := |Pr [O' = 6 ] - 1/ 2|
Seguridad del esquema HPE descrito en la cuarta realización
Se describirá que el esquema HPE descrito en la cuarta realización que usa el esquema analizado en la Bibliografía no relacionada con patentes 7 es ocultación adaptativa de atributos frente a CCA.
La descripción que se da aquí se basa en la prueba analizada en la Bibliografía no relacionada con patentes 7. Por lo tanto, aquí se describirá un esquema de ocultación adaptativa de atributos frente a CCA.
Dado que un adversario A ataca el esquema HPE en el juego de ocultación de atributos adaptativa frente a CCA descrito anteriormente, se construye un adversario A', atacando el adversario A' el esquema HPE con predicados de productos internos (n+2)-dimensionales en el juego de ocultación adaptativa de atributos frente a c Pa descrito anteriormente. Los algoritmos Setup, GenKey y DelegateL son los mismos que los del esquema HPE anterior (es decir, un subespacio (n+2)-dimensional para los predicados de productos internos es <b0 , ..., bn-1, bn+2, bn+3>) excepto para un formato de jerarquía p^ hpkem para el esquema HPKEM. El formato de la jerarquía p^ hpkem para el esquema HPKEM es p^ hpkem: = (n, d; p1, ..., pd, pd+2) con d+1 niveles, mientras que un formato de jerarquía P^hpe para el esquema HPE es p^ hpe: = (n, d; p1, ..., pd) con d niveles.
El adversario A' se define de la siguiente manera:
1. Una clave pública pkHPKEM: = (m^ hpkem, V, V*, GT, A, A*, q, B) del esquema HPKEM se entrega al adversario A'. El adversario A'(1A) ejecuta Setupenc(1A) para generar datos públicos, establece la clave pública pk: = (pkHPKEM, pub) del esquema HPE y se lo entrega al adversario A.
2. Si el adversario A envía los vectores que se muestran en la fórmula 194 a su oráculo de consulta de claves (consulte la definición de ocultación adaptativa de atributos frente a CCA), el adversario A' envía los vectores que se muestran en la fórmula 194 a su oráculo de consulta de claves (consulte la definición de ocultación adaptativa de atributos frente a CPA). Se devuelve una respuesta al adversario A.
[Fórmula 194]
Figure imgf000065_0001
3. Si el adversario A envía textos cifrados (c1, c2 , c3, c4) junto con los vectores de atributos (x^ 1, ..., X ^ l) a su oráculo de desencriptado, el adversario A' realiza los siguientes (1) a (3):
(1) El adversario A' calcula los vectores de predicado que se muestran en la fórmula 195.
[Fórmula 195]
Figure imgf000065_0002
) tai que V j - X j — 0 para
(2) El adversario A' somete los vectores (con niveles d 1) que se muestran en la fórmula 196 a su oráculo de consulta de claves (ver la definición de ocultación adaptativa de atributos frente a CPA), y se responde con k*d+1,0.
[Fórmula 196]
(ñ ,...}v¿f0,...,0,(c3 - i ) )
(3) El adversario A' establece la fórmula 197.
[Fórmula 197]
Figure imgf000065_0003
El adversario A' también calcula Dec (k*L, 0, k*L, n+2, k*L, n+3, (c1, c2 , c3, c4)), donde Dec (k*L, 0, k*L, n+2, k*L, n+3, (c1, c2 , c3, c4)) es el algoritmo Dec del esquema HPE. En el cálculo de Dec (k*L, 0 , k*L, n+2, k*L, n+3, (c1, c2 , c3, c4)), un valor de la fórmula 198 se usa directamente en lugar de un valor calculado a partir de k*L, 0 , k*L, n+2, k*L, n+3. Se devuelve un resultado al adversario A.
[Fórmula 198]
Figure imgf000065_0004
4. Si el adversario A emite la fórmula 199, el adversario A' selecciona 0 como se muestra en la fórmula 200. [Fórmula 199]
[Fórmula 200]
Figure imgf000066_0001
El adversario A' calcula la fórmula 201. El algoritmo Enc que se muestra en la fórmula 201 es el algoritmo Enc del esquema HPE. El adversario A' devuelve (c(0)1, c(0)2 , c(e)3, c(e)4) al adversario A.
[Fórmula 201]
Figure imgf000066_0002
5. Si el adversario A envía los vectores que se muestran en la fórmula 202 a su oráculo de consulta de claves (consulte la definición de ocultación adaptativa de atributos frente a CCA), el adversario A' ejecuta el mismo proceso que la etapa 2.
[Fórmula 202]
Figure imgf000066_0003
6. Si el adversario A envía los textos cifrados (c1, c2 , es, c4) junto con los vectores de atributos (x^ 1, ..., X ^l) a su oráculo de desencriptado, el adversario A' realiza lo siguiente (1) o (2):
(1) Si c3 = c(0)3, el adversario A' devuelve un símbolo distinguido ±.
(2) Si c3 t c(0)3, el adversario A' ejecuta el mismo proceso que la etapa 3.
7. Finalmente, el adversario A genera un supuesto 0'. El adversario A' produce el mismo supuesto.
La fórmula 203 se puede probar de la misma manera que la analizada en la Bibliografía no relacionada con patentes 7.
[Fórmula 203]
Figure imgf000066_0004
Sexta realización
En esta realización, se describirá un proceso criptográfico modificado para proporcionar un mayor nivel de seguridad que los procesos criptográficos descritos en las realizaciones anteriores. El proceso criptográfico que se describirá en esta realización oculta de forma adaptativa los atributos frente a CPA, como con el proceso criptográfico descrito en la segunda realización, y se modifica para proporcionar un mayor nivel de seguridad. En una realización posterior se describirá un proceso criptográfico que oculta de forma adaptativa los atributos frente a CCA, como en la cuarta realización, y que se modifica para proporcionar un mayor nivel de seguridad.
En primer lugar, se describirá una noción de "n copias de espacios vectoriales" que se utilizarán para proporcionar un mayor nivel de seguridad. A continuación, en base a las n copias de espacios vectoriales, se describirá el proceso criptográfico modificado para proporcionar un mayor nivel de seguridad. Es el esquema HPE que se describirá aquí, pero también se puede implementar un esquema HPKEM.
En el esquema HPE según esta realización, se usan las n copias de espacios vectoriales así como una pluralidad de números aleatorios que no se usan en los esquemas HPE según las realizaciones anteriores.
n copias de espacios vectoriales
En las realizaciones anteriores, los procesos criptográficos se implementan en un par de bases ortonormales duales compuestas por la base B generada a partir de la base canónica A del espacio V y la base B* generada a partir de la base canónica A* del espacio V*. El proceso criptográfico según esta realización se implementa en n pares de bases ortonormales duales compuestas de bases (B[0], ..., B[n-1]) y bases (B[0]*, ..., B[n-1]*).
Las figuras 26 y 27 son diagramas para explicar las n copias de espacios vectoriales.
Como se muestra en la figura 26, existen n pares de espacios vectoriales duales (V[0], ..., V[n-1]) y V[0]*, ..., V[n-1]*). Entonces, existen bases canónicas (A[0], ..., A[n-1]) y (A[0]*, ..., A[n-1]*) de los espacios (V[0], ..., V[n-1]) y V[0]*, ..., V[n-1]*). Cada par de bases A [t] (t = 0, ..., n-1) y A[t]* (t = 0, ..., n-1) constituye bases ortonormales duales. Es decir, las bases A[0] y A[0]* son bases ortonormales duales, las bases A[1] y A[1]* son bases ortonormales duales, ..., y las bases A[n-1] y A[n-1]* son bases duales ortonormales. Las bases (B[0], ..., B[n-1]) y (B[0]*, ..., B[n-1]*) se generan a partir de las bases canónicas (A[0], ..., A[n-1]) y (A[0]*, ..., A[n-1]*). Para generar las bases (B[0], ..., B[n-1]) de las bases canónicas (A[0], ..., A[n-1]), se utilizan transformaciones lineales X [t] (t = 0, ..., n-1). Por otro lado, para generar las bases (B[0]*, ..., B[n'1]*) de las bases canónicas (A[0]*, ..., A[n'1]*, se utiliza ((X[t])T)-1 (t = 0, ..., n-1) generado a partir de las transformaciones lineales X[t] (t = 0, ..., n-1). Como resultado, cada par de bases B[t] (t = 0, ..., n-1) y B[t]* (t = 0, ..., n-1) constituye bases ortonormales duales. Es decir, las bases B[0] y B[0]* son bases ortonormales duales, las bases B[1] y B[1]* son bases ortonormales duales, ..., y las bases B[n'1] y B[n'1]* son bases duales ortonormales.
El proceso criptográfico se implementa aquí, como se muestra en la figura 27, generando el número n de bases (B[0], ..., B[n_1]) y (B[0]*, ..., B[n'1]*) respectivamente de las bases canónicas A y A* de un par de espacios duales V y V*. De esta forma, incluso cuando el número n de bases (B[0], ..., B[n_1]) y (B[0]*, ..., B[n'1]*) se generan respectivamente, cada base B[t] (t = 0, ..., n-1) y cada base B[t]* (t = 0, ..., n-1) constituyen bases ortonormales duales.
Proceso criptográfico
Se describirá el sistema de procesamiento criptográfico 10 que implementa el esquema HPE con un mayor nivel de seguridad utilizando las n copias de espacios vectoriales descritas anteriormente.
Haciendo referencia a las figuras 28 a 32, se describirán las funciones y operaciones del sistema de procesamiento criptográfico 10.
La figura 28 es un diagrama de bloques funcional que muestra las funciones del sistema de procesamiento criptográfico 10 que implementa el esquema HPE con un mayor nivel de seguridad utilizando las n copias de espacios vectoriales. El sistema de procesamiento criptográfico 10 incluye el dispositivo de generación de claves 100, el dispositivo de encriptado 200, el dispositivo de desencriptado 300 y el dispositivo de delegación de claves 400, como con el sistema de procesamiento criptográfico 10 según la segunda realización. También se supone en esta realización que el dispositivo de desencriptado 300 incluye el dispositivo de delegación de claves 400.
La figura 29 es un diagrama de flujo que muestra las operaciones del dispositivo de generación de claves 100. La figura 30 es un diagrama de flujo que muestra las operaciones del dispositivo de encriptado 200. La figura 31 es un diagrama de flujo que muestra las operaciones del dispositivo de desencriptado 300. La figura 32 es un diagrama de flujo que muestra las operaciones del dispositivo de delegación de claves 400.
Se describirán las funciones y operaciones del dispositivo de generación de claves 100. La configuración de las funciones del dispositivo de generación de claves 100 es la misma que la del dispositivo de generación de claves 100 según la segunda realización mostrada en la figura 19.
S1301: Etapa de generación de claves maestras
Usando el dispositivo de procesamiento, la unidad de generación de claves maestras 110 calcula la fórmula 204 para generar una clave pública maestra pk y una clave secreta maestra sk y almacena las claves generadas en la unidad de almacenamiento de claves maestras 120.
[Fórmula 204]
( i)
Figure imgf000068_0001
(6)
s k := ( A ’ tO l........A l " - 1] . ® 0] * .........B t " - ' ] * ) ,
p k : = ( l ' ' , / i >V >V * , G r , A ) A * ,g i ,B lO ]>... , B l » - I ] ) >
re to rno s k , p k
Es decir:
(1) utilizando el dispositivo de procesamiento, la unidad de generación de claves maestras 110 genera DDVS N(=n+2)-dimensionales (V, V*, Gt, A, A*, q) con un parámetro de seguridad 1 \ Entonces, la unidad de generación de claves maestras 110 realiza los siguientes (2) a (5) para cada t (t = 0, ..., n-1).
(2) Usando el dispositivo de procesamiento, la unidad de generación de claves maestras 110 selecciona aleatoriamente la transformación lineal X [t] para generar una base B[t]: = (b[t]0 , ..., B[t]n-1) a partir de la base canónica A: = (a0 , ..., an-1).
(3) Usando el dispositivo de procesamiento y basándose en la transformación lineal seleccionada X[t], la unidad de generación de claves maestras 110 genera la base B[t] de la base A.
(4) Usando el dispositivo de procesamiento, la unidad de generación de claves maestras 110 genera, a partir de una transformación lineal X[t], una transformación lineal ((X[t])T)-1 para generar la base B[t]*: = (b[t]*o, B[tl*n-i) de la base A*: = (a*0 , ..., a*n-1).
(5) Usando el dispositivo de procesamiento y basado en la transformación lineal generada ((X[t])T)-1, la unidad de generación de claves maestras 110 genera la base B[t]* a partir de la base A*.
(6) La unidad de generación de claves maestras 110 designa las transformaciones lineales generadas X [t] (t = 0, ..., n-1) y las bases generadas B[t]* (t = 0, ..., n-1) como la clave secreta maestra sk, y (1A g^, V, V*, Gt, A, A*, q, B[0], ..., Btn-1]) incluyendo las bases generadas B[t] (t = 0, ..., n-1) como la clave pública maestra pk. La unidad de almacenamiento de claves maestras 120 almacena en el dispositivo de almacenamiento la clave pública maestra pk y la clave secreta maestra sk generada por la unidad de generación de claves maestras 110.
Al igual que con el sistema de procesamiento criptográfico 10 según la segunda realización, se supone que hay un número N (= n+2) de dimensiones en DDVS. Es decir, los vectores de base del DDVS están estructurados como se muestra en la figura 15.
Para resumir, en (S1301), la unidad de generación de claves maestras 110 ejecuta el algoritmo Setup mostrado en la fórmula 205 para generar la clave pública maestra pk y la clave secreta maestra sk.
[Fórmula 205]
Figure imgf000069_0001
Entonces, la unidad de generación de vectores de claves 130 y la unidad de generación de vectores de generación de claves 140 realizan (S1302) y (S1303) para cada t (t = 0, ..., n-1).
S1302: Etapa de generación de vectores de claves k[t]*i,o
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk, la clave secreta maestra sk y un vector de predicado v ^ 1, la unidad de generación de vectores de claves 130 calcula la fórmula 206 para generar un vector de clave k[t]*1 ,0 que es el primer elemento de una clave secreta de primer nivel (nivel 1).
[Fórmula 206]
O)
Figure imgf000069_0002
donde
¡ J ¿ ] * .
* 1,0
primer elemento de la clave secreta de primer nivel, y
vi(i = 0, yvi -1): vector de predicado.
Es decir:
(1) utilizando el dispositivo de procesamiento, la unidad de generación de vectores de claves 130 genera números aleatorios T1, 01 , 0 , y Z[t]1,0.
(2) Usando el dispositivo de procesamiento, la unidad de generación de vectores de claves 130 genera el vector de clave k[t]*1,0 estableciendo un valor predeterminado (1 en este caso) aleatorizado por el número aleatorio Z[t]1,0 como el coeficiente del vector de base b[t]*n en la base B[t]*, estableciendo también cada elemento del vector de predicado v d aleatorizado por el número aleatorio 01 ,0 como el coeficiente de cada vector de base b[t]*i (i = 0, ..., P1-1 ) y aleatorizando todo el vector de clave mediante el número aleatorio T1.
S1303: Etapa de generación de vectores de generación de claves k[t]*i, j
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk, la clave secreta maestra sk y el vector de predicado v d (v d = (v0, ..., v¡) (i = P1- 1 )), la unidad de generación de vectores de generación de claves 140 calcula la fórmula 207 para generar cada vector de generación de claves k[t]*1, j para generar una clave secreta de nivel inferior (un vector de clave de nivel inferior). El vector de generación de claves k[t]*1, j es el j-ésimo elemento de la clave secreta de primer nivel.
[Fórmula 207]
( i )
Figure imgf000070_0001
donde
*1 ,1 • primer elemento de la clave secreta de primer nivel, y
Ki j ■
j-esimo elemento de la clave secreta de primer nivel.
Es decir:
(1) utilizando el dispositivo de procesamiento, la unidad de generación de vectores de generación de claves 140 genera números aleatorios T1, 01 j (j = 1, p1, ..., n-1) y Z[t]1,j (j = 1, P1, ..., n-1).
(2) Usando el dispositivo de procesamiento, la unidad de generación de vectores de generación de claves 140 genera un vector de generación de claves k[t]*i, i estableciendo un valor predeterminado (1 en este caso) aleatorizado por el número aleatorio Z[t]1,1 como el coeficiente del vector de base b[t]*n en la base B[t]*, estableciendo también cada elemento del vector de predicado v ^ 1 aleatorizado por el número aleatorio 01 , 1 como el coeficiente de cada vector de base b[t]*¡ (i = 0, ..., p1-1 ) y aleatorizando todo el vector de clave por el número aleatorio T1.
(3) Usando el dispositivo de procesamiento, la unidad de generación de vectores de generación de claves 140 genera el vector de generación de claves k[t]*1,j, para cada j (j = p1, ..., n-1), estableciendo un valor predeterminado (1 en este caso) como el coeficiente del vector de base b[t]*j en la base B[t]*, estableciendo cada elemento del vector de predicado v ^ 1 aleatorizado por el número aleatorio 01 , i como el coeficiente de cada vector de base b[t]*i (i = 0, ..., |J1-l), estableciendo un valor predeterminado (1 en este caso) aleatorizado por el número aleatorio Z[t]1,j como el coeficiente del vector de base b[t]*n y aleatorizando todo el vector de clave por el número aleatorio T1.
Para resumir, en (S1302) y (S1303), usando el dispositivo de procesamiento, la unidad de generación de vectores de claves 130 y la unidad de generación de vectores de generación de claves 140 ejecutan el algoritmo GenKey que se muestra en la fórmula 208 para generar la clave secreta de primer nivel (información de clave k^ [t]*1) incluyendo el vector de clave k[t]*1, 0 y los vectores de generación de claves k[t]*1, j.
[Fórmula 208]
Figure imgf000071_0001
S1304: Etapa de distribución de claves
La unidad de distribución de claves 150 transmite la clave pública maestra generada por la unidad de generación de claves maestras 110 y la información de clave k^ [t]*1 (t = 0, ..., n-1) generada por la unidad de generación de vectores de claves 130 y la unidad de generación de vectores de generación de claves 140 al dispositivo de desencriptado 300 a través del dispositivo de comunicación. La unidad de distribución de claves 150 también transmite la clave pública maestra al dispositivo de encriptado 200 a través del dispositivo de comunicación.
Se describirán las funciones y operaciones del dispositivo de encriptado 200. La configuración de las funciones del dispositivo de encriptado 200 es la misma que la del dispositivo de encriptado 200 según la segunda realización mostrada en la figura 19.
S1401: Etapa de configuración de mensajes
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk, la unidad de configuración de información de transmisión 210 calcula la fórmula 209 para generar cada vector de mensaje mv[t] (t = 0, ..., n-1).
[Fórmula 209]
Figure imgf000071_0002
Es decir, usando el dispositivo de procesamiento, la unidad de configuración de información de transmisión 210 genera el vector de mensaje mv[t], para cada t (t = 0, n-1), estableciendo un mensaje m como el coeficiente del vector de base b[t]n en la base B[t] incluida en la clave pública maestra pk.
S1402: Etapa de generación de vectores de cifrado
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk y los vectores de atributos x ^ i a x^ l (X^i (i = 1, ..., L) (= (x0 , ..., xi) (i = pi_-1))) (donde L indica la profundidad de la jerarquía), la unidad de generación de vectores de cifrado 220 calcula la fórmula 210 para generar cada vector de cifrado c[t] (t = 0, ..., n-1).
[Fórmula 210]
0 )
Figure imgf000072_0001
Es decir:
(1) utilizando el dispositivo de procesamiento, la unidad de generación de vectores de cifrado 220 genera números aleatorios x^¡ (i = L+1, ..., d), ¿i (i = 1, ..., d) y 5[t]n+1 (t = 0, ..., n-1).
(2) Usando el dispositivo de procesamiento, la unidad de generación de vectores de cifrado 220 genera un vector de información de atributo xv[t], para cada base B[t] (t = 0, ..., n-1) incluida en la clave pública maestra pk, estableciendo cada elemento y así sucesivamente de los vectores de atributos.
Para cada i (i = 0, ..., p1-1), el coeficiente de cada vector de base b[t]i (t = 0, ..., n-1) se establece de manera que la suma de los coeficientes de los vectores de base b[t]i (t = 0, ..., n-1) constituye el vector de atributo aleatorio x^¡. Esto se realiza aquí estableciendo números aleatorios s[t]i como los coeficientes de los vectores de base b[t]i (t = 0, ..., n-2), y estableciendo el coeficiente del vector de base b[t]i (t = n-1) tal que la suma de los coeficientes constituya el vector de atributo aleatorio x^¡.
Se establece un número aleatorio como el coeficiente de cada vector de base b[t]i (t = 0, ..., n-1) para i = pl, ..., n-1.
(3) Usando el dispositivo de procesamiento, la unidad de generación de vectores de cifrado 220 genera un vector de números aleatorios rv[t], para cada base B[t] (t = 0, ..., n-1), estableciendo el número aleatorio ó[t]n+1 como el coeficiente del vector de base b[t]n+1 en la base B incluida en la clave pública maestra pk.
(4) Usando el dispositivo de procesamiento, la unidad de generación de vectores de cifrado 220 genera el vector de cifrado c[t], para cada base B[t] (t = 0, ..., n-1), agregando el vector de información de atributo generado xv[t] y el vector de números aleatorios generado rv[t] al vector de mensaje mv[t] generado por la unidad de configuración de información de transmisión 210.
S1403: Etapa de transmisión de datos
La unidad de transmisión de datos 230 transmite los vectores de cifrado c[t] generados por la unidad de generación de vectores de cifrado 220 al dispositivo de desencriptado 300 a través del dispositivo de comunicación.
Para resumir, el dispositivo de encriptado 200 ejecuta el algoritmo Enc que se muestra en la fórmula 211 para generar cada vector de cifrado c[t].
[Fórmula 211]
Figure imgf000073_0001
Se describirán las funciones y operaciones del dispositivo de desencriptado 300. La configuración de las funciones del dispositivo de desencriptado 300 es la misma que la del dispositivo de desencriptado 300 según la segunda realización mostrada en la figura 19.
S1501: Etapa de entrada de vectores
La unidad de entrada de vectores 310 recibe a través del dispositivo de comunicación e introduce los vectores de cifrado c[t] (t = 0, ..., n-1) transmitidos por la unidad de transmisión de datos 230 del dispositivo de encriptado 200.
S1502: Etapa de operación de emparejamiento
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk y cada vector de clave k[t]*L, 0 (t = 0, ..., n-1) que es el primer elemento de la clave secreta de L-ésimo nivel, la unidad de operación de emparejamiento 330 calcula la fórmula 212 para generar información f relativa al mensaje m.
[Fórmula 212]
/ - r x r ó ^ u a )
Es decir, utilizando el dispositivo de procesamiento, la unidad de operación de emparejamiento 330 genera la información f realizando la operación de emparejamiento e, que empareja los espacios V y V* incluidos en la clave pública maestra pk, en cada vector de cifrado c introducido por la unidad de entrada de vectores 310 y cada vector de clave k[t]*L, 0 almacenado en el dispositivo de almacenamiento por la unidad de almacenamiento de vectores de claves 320.
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk y cada vector de clave k* [t]L, 0 (t = 0, ..., n-1), la unidad de operación de emparejamiento 330 calcula la fórmula 213 para generar información g que se utilizará para extraer el mensaje m de la información f.
[Fórmula 213]
Figure imgf000074_0001
Es decir, usando el dispositivo de procesamiento, la unidad de operación de emparejamiento 330 genera la información g realizando la operación de emparejamiento e, que empareja los espacios V y V* incluidos en la clave pública maestra pk, en cada base b[t]n en cada base B[t] incluida la clave pública maestra pk y cada vector de clave k[t]*L, 0 almacenado en el dispositivo de almacenamiento por la unidad de almacenamiento de vectores de claves 320.
S1503: Etapa de cálculo de logaritmo discreto
La unidad de cálculo de logaritmo discreto 340 resuelve un problema de logaritmo discreto para la información base g sobre la información f para calcular el mensaje m. Es decir, la unidad de cálculo de logaritmo discreto 340 calcula la fórmula 214.
[Fórmula 214]
Figure imgf000074_0002
donde
Dlogx(y) indica la resolución de un problema de logaritmos discretos para basar x en y.
Al igual que con el sistema de procesamiento criptográfico 10 que implementa el esquema HPE descrito en la segunda realización, el mensaje m que se introducirá aquí será un valor menor que un número entero pequeño predeterminado t. Esto se debe a que, como se describió anteriormente, el dispositivo de desencriptado 300 necesita resolver el problema del logaritmo discreto al calcular el mensaje m. Al igual que con el sistema de procesamiento criptográfico 10 que implementa el esquema HPE descrito en la segunda realización, el mensaje m puede establecerse en una pluralidad de vectores básicos.
En resumen, el dispositivo de desencriptado 300 ejecuta el algoritmo Dec mostrado en la fórmula 215 para generar un mensaje m' o un símbolo distinguido 1 .
[Fórmula 215]
Figure imgf000074_0003
Se describirán las funciones y operaciones del dispositivo de delegación de claves 400. La configuración de las funciones del dispositivo de delegación de claves 400 es la misma que la del dispositivo de delegación de claves 400 según la segunda realización mostrada en la figura 19.
S1601: Etapa de adquisición de vectores de claves k[t]*L, 0
La unidad de adquisición de vectores de claves 410 adquiere, a través del dispositivo de comunicación, para cada t (t = 0, ..., n-1), la clave secreta de L-ésimo nivel (información de clave k^ [t]*L) incluyendo el vector de clave k[t]*L, 0 que es el primer elemento de la clave secreta de L-ésimo nivel y los vectores de generación de claves k[t]*L, j que son los j-ésimos (j = p1, ..., n-1) elementos de la clave secreta de L-ésimo nivel.
La unidad de generación de vectores de claves 420 y la unidad de generación de vectores de claves 430 realizan (S1602) y (S1603) para cada t (t = 0, n-1).
S1602: Etapa de generación de vectores de claves k[t]*L+i, o
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk, la información de clave k^ [t]*L y el vector de predicado v^ l+1 (v^ l+1 = (vi, ..., vj) (i = pi_, j = pi_+1-1)), la unidad de generación de vectores de claves 420 calcula la fórmula 216 para generar un vector de clave k[t]*L+1, 0 que es el primer elemento de una clave secreta de (L+1)-ésimo nivel.
[Fórmula 216]
( 1)
Figure imgf000075_0001
Es decir:
(1) utilizando el dispositivo de procesamiento, la unidad de generación de vectores de claves 420 genera números aleatorios tl+1 ,0 , pL+1,0, i (i = 0, ..., L) y ctl+1 ,0.
(2) Usando el dispositivo de procesamiento, la unidad de generación de vectores de claves 420 genera el vector de clave k[t]*L+1, 0 agregando, al vector de clave k[t]*L, 0 , vectores vi (i = pl, ..., pl i-1) en los que cada elemento del vector de predicado v^L+1 aleatorizado por el número aleatorio ol+1, 0 se establece como el coeficiente de cada vector de generación de claves k[t]*L, i (i = pl, ..., pl+1-1), el vector de clave k[t]*L, 0 aleatorizado por el número aleatorio Lp l+1,0, 0y los vectores de generación de claves k[t]*L, i (i = 1, ..., L) aleatorizados por los números aleatorios pL+1,0, i (i = 1, ..., L).
S1603: Etapa de generación de vectores de generación de claves k[t]*L+1, j
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk, la información de clave k^ [t]*L y el vector de predicado v^L+1, la unidad de generación de vectores de generación de claves 430 calcula la fórmula 217 para generar cada vector de generación de claves k[t]*L+1, j para generar una clave secreta de nivel inferior (un vector de clave de nivel inferior). El vector de generación de claves k[t]*L+1, j es el j-ésimo elemento de la clave secreta de (L+1)-ésimo nivel.
[Fórmula 217]
Figure imgf000075_0002
Es decir:
(1) utilizando el dispositivo de procesamiento, la unidad de generación de vectores de generación de claves 430 genera números aleatorios tl+1, ^ l+1, j i (i = 0, ..., L) (j = 1, ..., L 1, |Jl+i , ..., n-1) y ol+i , j (j = |Jl+i , ..., n-1).
(2) Usando el dispositivo de procesamiento, la unidad de generación de vectores de generación de claves 140 genera el vector de generación de claves k[t]*L+1, j para generar un vector de clave de nivel inferior del vector de clave k[t]*L+1, 0 , para cada j (j = 1, ..., L+1, jl+1, ..., n-1), agregando vectores en los que cada elemento del vector de predicado v^L+1 aleatorizado por el número aleatorio ol+1, j se establece como el coeficiente de cada vector de generación de claves k[t]*L, i (i = Jl, ..., Jl+1-1), el vector de clave k[t]*L, 0 aleatorizado por el número aleatorio ^ l+1, j, 0 y los vectores de generación de claves k[t]*L, i aleatorizados por los números aleatorios ^ l+1, j, i (i = 1, ..., L).
Para resumir, en (S1601) y (S1602), utilizando el dispositivo de procesamiento, la unidad de generación de vectores de claves 420 y la unidad de generación de vectores de claves 430 ejecutan el algoritmo DelegateL que se muestra en la fórmula 218 para generar la clave secreta de (L+1)-ésimo nivel (información de clave k^ [t]*L+1) incluida el vector de clave k[t]*L+1, 0 y los vectores de generación de claves k[t]*L+1, j.
[Fórmula 218]
Figure imgf000076_0001
S1604: Etapa de distribución de claves
La unidad de distribución de claves 440 transmite la información de clave k ^ [t]Vn generada por la unidad de generación de vectores de claves 420 y la unidad de generación de vectores de generación de claves 430 al dispositivo de desencriptado 300 de un nivel inferior a través del dispositivo de comunicación.
La operación de emparejamiento calculada en (SI502) se explicará con más detalle.
En la segunda realización, como se ha descrito con referencia a la figura 16, un componente relativo al vector de base bn se extrae utilizando el producto interno de 0 entre el vector de atributo y el vector de predicado, es decir, realizando la operación de emparejamiento de modo que todos los componentes distintos del componente relativo al vector de base bn en el texto cifrado c se convierten en 0. Asimismo, en esta realización, la operación de emparejamiento se realiza en (S1502) de manera que el componente relativo al vector de base bn se extrae del texto cifrado c realizando la operación de emparejamiento como se muestra en la fórmula 219. La fórmula 219 es una ecuación para explicar la operación de emparejamiento. En la fórmula 219, los índices de números aleatorios se simplifican por simplicidad.
[Fórmula 219]
Figure imgf000077_0001
donde
c[í]: porción de vector de atributo de c[t],
j t [ í ] * •
k t 0 • porción del vector de predicado de
Figure imgf000077_0002
S1,..., Sd, T1, ..., Td. números aleatorios,
Vi: vector de predicado (i = 1, ..., Lv),
Vi. 0 (i = Lv+1, ..., d), y
xi • Vi = 0 i= 1,...,d.
Como se ha descrito, el sistema de procesamiento criptográfico 10 según esta realización implementa el esquema HPE que oculta atributos de forma adaptativa frente a CPA y se modifica para proporcionar un alto nivel de seguridad.
El sistema de procesamiento criptográfico 10 según esta realización puede implementar fácilmente un esquema HPKEM, como con el sistema de procesamiento criptográfico 10 según las realizaciones anteriores.
Séptima realización
En esta realización, se describirá un proceso criptográfico que oculta atributos de forma adaptativa frente a CCA. El proceso criptográfico que se describirá en esta realización se construye basándose en el proceso criptográfico que oculta de forma adaptativa los atributos frente a CPA descrito en la sexta realización.
El esquema HPE que oculta atributos adaptativamente frente a CCA se construye a partir del esquema HPE utilizando las n copias de espacios vectoriales descritos en la sexta realización aplicando el esquema descrito en la Bibliografía no relacionada con patentes 11.
En la cuarta realización, se ha descrito principalmente el esquema HPE que usa el esquema analizado en la Bibliografía no relacionada con patentes 7, y se ha descrito brevemente el esquema HPE que usa el esquema analizado en la Bibliografía no relacionada con patentes 11. En esta realización, se describirá el esquema HPE que usa el esquema analizado en la Bibliografía no relacionada con patentes 11.
Haciendo referencia a las figuras 33 a 35, 29 y 32, se describirán las funciones y operaciones del sistema de procesamiento criptográfico 10.
La figura 33 es un diagrama de bloques funcional que muestra las funciones del sistema de procesamiento criptográfico 10 según esta realización. El sistema de procesamiento criptográfico 10 incluye el dispositivo de generación de claves 100, el dispositivo de encriptado 200, el dispositivo de desencriptado 300 y el dispositivo de delegación de claves 400, como con el sistema de procesamiento criptográfico 10 según la segunda realización. También se supone en esta realización que el dispositivo de desencriptado 300 incluye el dispositivo de delegación de claves 400.
La figura 34 es un diagrama de flujo que muestra las operaciones del dispositivo de encriptado 200. La figura 35 es un diagrama de flujo que muestra las operaciones del dispositivo de desencriptado 300. Los flujos de operaciones del dispositivo de generación de claves 100 y del dispositivo de delegación de claves 400 son los mismos que los del dispositivo de generación de claves 100 y el dispositivo de delegación de claves 400 según la sexta realización. Por lo tanto, las operaciones del dispositivo de generación de claves 100 se describirán con referencia a la figura 29. Las operaciones del dispositivo de delegación de claves 400 se describirán con referencia a la figura 32.
En la siguiente descripción, Sig: = (Gsig, Sign, Vrfy) indica el esquema seguro de firma única descrito en la cuarta realización.
Se describirán las funciones y operaciones del dispositivo de generación de claves 100. La configuración de las funciones del dispositivo de generación de claves 100 es la misma que la del dispositivo de generación de claves 100 según la sexta realización mostrada en la figura 28. El flujo de operaciones del dispositivo de generación de claves 100 es el mismo que el del dispositivo de generación de claves 100 según la sexta realización mostrada en la figura 29. Por lo tanto, las funciones y operaciones del dispositivo de generación de claves 100 se describirán con referencia a la figura 29.
S1301: Etapa de generación de claves maestras
Al igual que con la sexta realización, utilizando el dispositivo de procesamiento, la unidad de generación de claves maestras 110 genera una clave pública maestra pk y una clave secreta maestra sk, y almacena las claves generadas en la unidad de almacenamiento de claves maestras 120.
Al igual que con la cuarta realización, se supone que hay un número N (= n+4) de dimensiones en DDVS. Es decir, los vectores de base del DDVS están estructurados como se muestra en la figura 25.
Para resumir, en (S1301), la unidad de generación de claves maestras 110 ejecuta el algoritmo Setup mostrado en la fórmula 220 para generar la clave pública maestra pk y la clave secreta maestra sk.
[Fórmula 220]
Figure imgf000078_0001
Entonces, como con la sexta realización, la unidad de generación de vectores de claves 130 y la unidad de generación de vectores de generación de claves 140 realizan (S1302) y (S1303) para cada t (t = 0, ..., n-1). S1302: Etapa de generación de vectores de claves k[t]*1,0
Al igual que con la sexta realización, utilizando el dispositivo de procesamiento, la unidad de generación de vectores de claves 130 calcula la fórmula 221 para generar un vector de clave K[t]*1,0 que es el primer elemento de una primera clave secreta (nivel 1).
[Fórmula 221]
Figure imgf000079_0001
donde
kn ■
* 1 0 ' primer elemento de la clave secreta de primer nivel, y
vector de predicado.
S1303: Etapa de generación de vectores de generación de claves j
Al igual que con la sexta realización, utilizando el dispositivo de procesamiento, la unidad de generación de vectores de generación de claves 140 calcula la fórmula 222 para generar cada vector de generación de claves k[t]*1,j. El vector de generación de claves k[t]*1, j es el j-ésimo elemento de la clave secreta de primer nivel.
[Fórmula 222]
Figure imgf000079_0002
donde
M . .
* 1 11»1 primer elemento de la clave secreta de primer nivel, y
Figure imgf000079_0003
j-ésimo elemento de la clave secreta de primer nivel.
Debe tenerse en cuenta que la unidad de generación de vectores de generación de claves 140 genera los vectores de generación de claves k[t]*1,j (j = 1, p1, ..., n-1, n+2, n+3). Es decir, la unidad de generación de vectores de generación de claves 140 difiere de la unidad de generación de vectores de generación de claves 140 mostrada en la figura 28 en que genera los vectores de generación de claves k[t]*1, n+2 y k[t]*1, n+3.
Para resumir, en (S1302) y (S1303), utilizando el dispositivo de procesamiento, la unidad de generación de vectores de claves 130 y la unidad de generación de vectores de generación de claves 140 ejecutan el algoritmo GenKey que se muestra en la fórmula 223 para generar la clave secreta de primer nivel (información de clave k^ [t]*1) incluyendo el vector de clave k[t]*1,0 y los vectores de generación de claves k[t]*1, j.
[Fórmula 223]
Figure imgf000080_0001
S1304: Etapa de distribución de claves
Al igual que con la sexta realización, la unidad de distribución de claves 150 transmite la clave pública maestra generada por la unidad de generación de claves maestras 110 y la información de clave k^ [t]*1 (t = 0, ..., n-1) generada por la unidad de generación de vectores de claves 130 y la unidad de generación de vectores de generación de claves 140 al dispositivo de desencriptado 300 a través del dispositivo de comunicación. La unidad de distribución de claves 150 también transmite la clave pública maestra al dispositivo de encriptado 200 a través del dispositivo de comunicación.
Se describirán las funciones y operaciones del dispositivo de encriptado 200. El dispositivo de encriptado 200 incluye la unidad de generación de información de verificación 250, la unidad de configuración de información de verificación 260 y la unidad de generación de información de firma 270, además de las funciones del dispositivo de encriptado 200 según la sexta realización mostrada en la figura 28.
S1701: Etapa de generación de información de verificación
Usando el dispositivo de procesamiento, la unidad de generación de información de verificación 250 calcula la fórmula 224 para generar una clave de verificación vk y una clave de firma sk.
[Fórmula 224]
Figure imgf000080_0002
S1702: Etapa de configuración de mensajes
Al igual que con la sexta realización, utilizando el dispositivo de procesamiento y basándose en la clave pública maestra pk, la unidad de configuración de información de transmisión 210 calcula la fórmula 225 para generar cada vector de mensaje mv[t] (t = 0, ..., n-1).
[Fórmula 225]
Figure imgf000080_0003
S 1703: Etapa de configuración de la información de verificación
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk, la unidad de configuración de información de verificación 260 calcula la fórmula 226 para generar cada vector de información de verificación cv[t] (t = 0, ..., n-1).
[Fórmula 226]
Figure imgf000081_0001
Es decir:
(1) utilizando el dispositivo de procesamiento, la unidad de configuración de información de verificación 260 genera cada número aleatorio 5[t]n+2 (t = 0, ..., n-1).
(2) Usando el dispositivo de procesamiento, la unidad de configuración de información de verificación 260 genera el vector de información de verificación cv[t] (t = 0, ..., n-1), para cada t (t = 0, ..., n-1), estableciendo un valor predeterminado (1 en este caso) aleatorizado por el número aleatorio 5[t]n+2 como el coeficiente del vector de base b[t]n+2 en la base B incluida en la clave pública maestra pk, y también configurando la clave de verificación vk aleatorizada por el número aleatorio 5[t]n+2 como el coeficiente del vector de base b[tW
S1704: Etapa de generación de vectores de cifrado
Usando el dispositivo de procesamiento y basándose en la clave pública maestra pk y los vectores de atributos x ^ 1 a x^ l (x^i (i = 1, ..., L) (= (x0 , ..., xi) (i = pi_ - 1))) (donde L indica la profundidad de la jerarquía), la unidad de generación de vectores de cifrado 220 calcula la fórmula 227 para generar cada vector de cifrado c[t] (t = 0, ..., n-1).
[Fórmula 227]
Figure imgf000082_0001
(1) a (3) mostrados en la fórmula 227 son los mismos que (1) a (3) mostrados en la fórmula 210. (4) Usando el dispositivo de procesamiento, la unidad de generación de vectores de cifrado 220 genera el vector de cifrado c[t], para cada base B[t] (t = 0, ..., n-1), agregando el vector de información de atributo generado xv[t], el vector de números aleatorios generado rv[t], el vector de mensaje mv[t] generado por la unidad de configuración de información de transmisión 210 y el vector de información de verificación cv[t] generado por la unidad de configuración de información de verificación 260.
S1705: Etapa de generación de información de firma
Usando el dispositivo de procesamiento, la unidad de generación de información de firma 270 calcula la fórmula 228 para generar información de firma X.
[Fórmula 228]
Figure imgf000082_0002
Es decir, utilizando el dispositivo de procesamiento y basándose en la clave de firma sk, la unidad de generación de información de firma 270 ejecuta Sign para generar la información de firma X.
S1706: Etapa de transmisión de datos
La unidad de transmisión de datos 230 transmite los vectores de cifrado c[t] generados por la unidad de generación de vectores de cifrado 220, la clave de verificación vk generada por la unidad de generación de información de verificación 250 y la información de firma X generada por la unidad de generación de información de firma 270 al dispositivo de desencriptado 300 a través del dispositivo de comunicación.
Para resumir, el dispositivo de encriptado 200 ejecuta el algoritmo Enc que se muestra en la fórmula 229 para generar los vectores de cifrado c[t] (t = 0, ..., n-1), la clave de verificación vk y la información de la firma X.
[Fórmula 229]
Figure imgf000082_0003
Se describirán las funciones y operaciones del dispositivo de desencriptado 300. El dispositivo de desencriptado 300 incluye la unidad de verificación de manipulación 370, además de las funciones incluidas en el dispositivo de desencriptado 300 según la sexta realización mostrada en la figura 28.
S1801: Etapa de entrada de vectores
La unidad de entrada de vectores 310 recibe a través del dispositivo de comunicación e introduce los vectores de cifrado c[t] (t = 0, ..., n-1), la clave de verificación vk y la información de firma Y transmitida por la unidad de transmisión de datos 230 del dispositivo de encriptado 200.
S1802: Etapa de verificación de firma
Usando el dispositivo de procesamiento, la unidad de verificación de manipulación 370 determina si se cumple la fórmula 230 o no.
[Fórmula 230]
Vrfyvk(cM ,...,d>-1],¿:) = l
Es decir, la unidad de verificación de manipulación 370 verifica la información de firma Y ejecutando Vrfy mediante la clave de verificación vk.
S1803: Etapa de deformación de vectores de claves
Usando el dispositivo de procesamiento, la unidad de deformación de vectores 350 calcula la fórmula 231 para deformar el vector de clave k[t]*L, 0.
[Fórmula 231]
.
kl ,o •“ Ki ,o + ¿r vk -k M
L,n +2 - k W - L,n +3
donde
Figure imgf000083_0001
primer elemento de la clave secreta de L-ésimo nivel después de deformarse,
d t } \
k L50 ' primer elemento de la clave secreta de L-ésimo nivel antes de deformarse,
Figure imgf000083_0002
(n+2)-ésimo elemento de la clave secreta de L-ésimo nivel, y
d t f .
KL ,n 3 ' , . . , . , , , . , , . . . ,(n+ o3x)-esimo elemento de la clave secreta de L-esimo nivel.
Es decir, la unidad de deformación de vectores 350 deforma el vector de clave mediante la clave de verificación vk, de modo que una operación de emparejamiento que se ejecutará en una etapa posterior borrará la clave de verificación vk establecida por la unidad de generación de información de verificación 250 del dispositivo de encriptado 200 (tal que 0 se establece como el coeficiente del vector de base en el que se establece la información que incluye la clave de verificación vk).
S1804: Etapa de operación de emparejamiento
Basándose en la clave pública maestra pk y los vectores de claves deformados k[t]*L, 0 (t = 0, ..., n-1), la unidad de operación de emparejamiento 330 calcula la fórmula 232 para generar información f relativa al mensaje m. [Fórmula 232]
Figure imgf000084_0001
Basándose en la clave pública maestra pk y los vectores de claves deformados k[t]*L, 0 (t = 0, n-1), la unidad de operación de emparejamiento 330 calcula la fórmula 233 para generar información g que se utilizará para extraer el mensaje m de la información f.
[Fórmula 233]
Figure imgf000084_0002
S 1805: Etapa de cálculo de logaritmo discreto
Al igual que con la sexta realización, la unidad de cálculo de logaritmo discreto 340 resuelve un problema de logaritmo discreto en la información f a la información base g para calcular el mensaje m. Es decir, la unidad de cálculo de logaritmo discreto 340 calcula la fórmula 234.
[Fórmula 234]
Figure imgf000084_0003
donde
Dlogx(y) indica la resolución de un problema de logaritmos discretos para basar x en y.
Al igual que con el sistema de procesamiento criptográfico 10 que implementa el esquema HPE descrito en la segunda realización, el mensaje m que se introducirá aquí será un valor menor que un número entero pequeño predeterminado t. Esto se debe a que, como se describió anteriormente, el dispositivo de desencriptado 300 necesita resolver el problema del logaritmo discreto al calcular el mensaje m. Al igual que con el sistema de procesamiento criptográfico 10 que implementa el esquema HPE descrito en la segunda realización, el mensaje m puede establecerse en una pluralidad de vectores básicos.
En resumen, el dispositivo de desencriptado 300 ejecuta el algoritmo Dec mostrado en la fórmula 235 para generar un mensaje m' o un símbolo distinguido 1 .
[Fórmula 235]
Figure imgf000084_0004
Se describirán las funciones y operaciones del dispositivo de delegación de claves 400. La configuración de las funciones del dispositivo de delegación de claves 400 es la misma que la del dispositivo de delegación de claves 400 según la sexta realización mostrada en la Fig. 28. El flujo de las operaciones del dispositivo de delegación de claves 400 es el mismo que el del dispositivo de delegación de claves 400 según la sexta realización mostrada en la figura 32. Por lo tanto, las funciones y operaciones del dispositivo de delegación de claves 400 se describirán con referencia a la figura 32.
S1601: Etapa de adquisición de vectores de claves k[t]*L, o
Al igual que con la sexta realización, la unidad de adquisición de vectores de claves 410 adquiere, a través del dispositivo de comunicación, la clave secreta de L-ésimo nivel (información de clave k^ [t]*L) incluyendo el vector de clave k[t]*L, 0 que es el primer elemento de la clave secreta de L-ésimo nivel y los vectores de generación de claves k[t]*L, j que son los j-ésimos (j = pi, ..., n-1) elementos de la clave secreta de L-ésimo nivel.
Como en la sexta realización, la unidad de generación de vectores de claves 420 y la unidad de generación de vectores de generación de claves 430 realizan (S1602) y (S1603) para cada t (t = 0, ..., n-1).
S1602: Etapa de generación de vectores de claves k[t]*L, 0
Al igual que con la sexta realización, utilizando el dispositivo de procesamiento, la unidad de generación de vectores de claves 420 calcula la fórmula 236 para generar un vector de clave k[t]*L+1,0 que es el primer elemento de una clave secreta de (L+1)-ésimo nivel.
[Fórmula 236]
( 1)
Figure imgf000085_0001
S1603: Etapa de generación de vectores de generación de claves k[t]*L, j
Al igual que con la sexta realización, utilizando el dispositivo de procesamiento, la unidad de generación de vectores de generación de claves 430 calcula la fórmula 237 para generar cada vector de generación de claves [t]*L+1 ,,j. El vector de generación de claves k[t]*L+i, j es el j-ésimo elemento de la clave secreta de (L+1)-ésimo nivel.
[Fórmula 237]
Figure imgf000085_0002
Debe tenerse en cuenta que la unidad de generación de vectores de generación de claves 430 genera los vectores de generación de claves k[t]Vn, j (j = 0, ..., L+1, pL+1, ..., n-1, n+2, n+3). Es decir, la unidad de generación de vectores de generación de claves 430 difiere de la unidad de generación de vectores de generación de claves 140 que se muestra en la figura 10 en que genera los vectores de generación de claves k[1]Vn, n+2 y k[1]Vn, n+3.
Para resumir, en (S1602) y (S1603), utilizando el dispositivo de procesamiento, la unidad de generación de vectores de claves 420 y la unidad de generación de vectores de claves 430 ejecutan el algoritmo DelegateL que se muestra en la fórmula 238 para generar la información de clave k^ [t]*L+1 incluyendo el vector de clave k[t]*L+1,0 y los vectores de generación de claves k[t]*L+1, j.
[Fórmula 238]
Figure imgf000086_0001
S1604: Etapa de distribución de claves
Al igual que con la sexta realización, la unidad de distribución de claves 440 transmite la información de clave k^ [t]*L+i generada por la unidad de generación de vectores de claves 420 y la unidad de generación de vector de generación de claves 430 al dispositivo de desencriptado 300 de un nivel inferior a través del dispositivo de comunicación.
Como se ha descrito, el sistema de procesamiento criptográfico 10 según esta realización implementa el esquema HPE que oculta atributos de forma adaptativa frente a CCA adaptado del esquema HPE que oculta atributos adaptativamente frente a CPA descrito en la sexta realización.
Octava realización
En esta realización, se describirán métodos para implementar espacios vectoriales de distorsión dual (DDVS). En primer lugar, se describirá un método de implementación mediante un producto directo de grupos de emparejamiento bilineales asimétricos usados como ejemplo de DDVS en las realizaciones anteriores. A continuación, se describirá un método de implementación mediante un producto directo de grupos de emparejamiento bilineales simétricos. A continuación, se describirá un método de implementación por una variedad jacobiana de una curva supersingular de género > 1.
Método de implementación por un producto directo de grupos de emparejamiento bilineales asimétricos Se proporcionan un grupo de emparejamiento bilineal asimétrico (G1, G2 , Gt, g1, g2 , q) y una operación de emparejamiento e en el grupo de emparejamiento bilineal asimétrico (G1, G2 , Gt, g1, g2 , q). El grupo de emparejamiento bilineal asimétrico (G1, G2 , Gt, g1, g2 , q) y la operación de emparejamiento se han descrito en la primera realización.
Los DDVS se implementan como se muestra a continuación.
V, V*, a0 , ..., aN-1, a*0 , ..., a*N-1 se muestran en la fórmula 239.
[Fórmula 239]
Figure imgf000086_0002
Los vectores x e y se muestran en la fórmula 240.
[Fórmula 240]
Figure imgf000087_0001
La operación de emparejamiento e en (V, V*) se define como se muestra en la fórmula 241.
[Fórmula 241]
Figure imgf000087_0002
Aquí, la notación e de la operación de emparejamiento e se usa para ambos (G1, G2) y (V, V*). Obviamente se cumplen la no degeneración y la bilinealidad de la operación de emparejamiento. Aquí, se cumple la fórmula 242.
[Fórmula 242]
Figure imgf000087_0003
donde
ó: Kronecker 5 (es decir, 5i,j = 1 si i = j y 5ij = 0 si i # j), y
Figure imgf000087_0004
Se definen mapas de distorsión simplemente como se muestra en la fórmula 243.
[Fórmula 243]
N —i
Figure imgf000087_0005
h of-..,o)
para
Figure imgf000087_0006
Método de implementación por un producto directo de grupos de emparejamiento bilineales simétricos Usando un grupo de emparejamiento bilineal simétrico (G, Gt, g, q) descrito anteriormente, se puede hacer la misma construcción de producto directo que en el caso de usar el grupo de emparejamiento bilineal asimétrico (G1, G2 , Gt, g1, g2 , q). Es decir, V = V* y A = A* para esa construcción. Por lo tanto, es posible comprobar si c e Fq tal que x = cx' existe para cualquier par de vectores x y x' distintos de cero en los espacios V = V* mediante el uso de la operación de emparejamiento e y una proyección a un vector de base en las bases A = A*.
Método de implementación por una variedad jacobiana de una curva supersingular de género > 1 Los DDVS se realizan mediante un grupo de puntos q-racionales de una variedad jacobiana de algunas curvas hiperelípticas supersingulares específicas C, es decir, V = V*: = Jacc[q]. La dimensión N del espacio V (y V*) es el doble de las curvas hiperelípticas supersingulares C. La base canónica A = (a0 , ..., aN-1) del espacio V viene dada por vectores propios de un endomorfismo de Frobenius. Todos los valores k¡, jeFq como se muestra en la fórmula 244 se determinan para el emparejamiento de Weil e analizado en la Bibliografía no relacionada con patentes 27. Usando valores tan explícitos de k¡, j, se puede construir la base ortonormal dual A* del espacio V*.
[Fórmula 244]
Figure imgf000088_0001
donde
6: Kronecker 5 (es decir, 5i,j =1 si i = j y 5i,j = 0 si i # j), y
Figure imgf000088_0002
Aquí, debe tenerse en cuenta que un endomorfismo $¡, j denominado mapa de distorsión en la Bibliografía no relacionada con patentes 21 no satisface necesariamente la condición de que $i, j(ak) = 0 si k # j. Sin embargo, la Bibliografía no relacionada con patentes 21 muestra que un operador de proyección Prj para <aj>, es decir, Prj(ak) = 5j, kaj, es calculable en tiempo polinomial. Por lo tanto, una composición $i, jPrj satisface la condición $i, jPrj(ak) = 5j, kai, y esto es calculable en tiempo polinomial. Aquí, $i, jPrj se denomina mapas de distorsión.
Novena realización
En las realizaciones anteriores, se han descrito los métodos para implementar los procesos criptográficos en espacios vectoriales duales. En esta realización, se describirá un método para implementar los procesos criptográficos en módulos duales.
Es decir, en las realizaciones anteriores, los procesos criptográficos se implementan en grupos cíclicos de primer orden q. Sin embargo, cuando un anillo R se expresa usando un número compuesto M como se muestra en la fórmula 245, los procesos criptográficos descritos en las realizaciones anteriores pueden adaptarse a un módulo que tiene el anillo R como coeficiente.
[Fórmula 245]
Figure imgf000088_0003
donde ^ : número entero y
M: número compuesto.
Por ejemplo, cuando el esquema HPKEM descrito en la segunda realización se implementa en el módulo que tiene el anillo R como coeficiente, se expresa como se muestra en las fórmulas 246 a 250.
[Fórmula 246]
Figure imgf000088_0004
[Fórmula 247]
Figure imgf000089_0001
[Fórmula 248]
Figure imgf000089_0002
retorno (c,¿C).
[Fórmula 249]
Figure imgf000089_0003
[Fórmula 250]
Figure imgf000089_0004
retorno k*L l .
Es decir, en principio, los procesos descritos para el campo Fq en las realizaciones anteriores se puede implementar en el módulo que tiene el anillo R como coeficiente reemplazando el campo Fq con el anillo R.
Ahora se describirá una configuración de hardware del sistema de procesamiento criptográfico 10 (el dispositivo de generación de claves 100, el dispositivo de encriptado 200, el dispositivo de desencriptado 300 y el dispositivo de delegación de claves 400) según las realizaciones.
La figura 36 es un diagrama que muestra una configuración de hardware de ejemplo del dispositivo de generación de claves 100, el dispositivo de encriptado 200, el dispositivo de desencriptado 300 y el dispositivo de delegación de claves 400.
Como se muestra en la figura 36, el dispositivo de generación de claves 100, el dispositivo de encriptado 200, el dispositivo de desencriptado 300 y el dispositivo de delegación de claves 400 incluyen cada uno la CPU 911 (unidad central de procesamiento, también denominada una unidad de procesamiento, una unidad aritmética, un microprocesador, un microordenador o un procesador). La CPU 911 está conectada a través del bus 912 con la ROM 913, la RAM 914, la LCD 901 (pantalla de cristal líquido), el teclado 902 (K/B), la placa de comunicación 915 y el dispositivo de disco magnético 920 y los controla estos dispositivos de hardware. El dispositivo de disco magnético 920 (un dispositivo de disco fijo) puede reemplazarse con un dispositivo de almacenamiento, tal como un dispositivo de disco óptico o un dispositivo de lectura/escritura de tarjeta de memoria. El dispositivo de disco magnético 920 está conectado a través de una interfaz de disco fija predeterminada.
La ROM 913 y el dispositivo de disco magnético 920 son ejemplos de una memoria no volátil. La RAM 914 es un ejemplo de memoria volátil. La ROM 913, la RAM 914 y el dispositivo de disco magnético 920 son ejemplos de un dispositivo de almacenamiento (memoria). El teclado 902 y la placa de comunicación 915 son ejemplos de un dispositivo de entrada. La placa de comunicación 915 es un ejemplo de un dispositivo de comunicación (una interfaz de red). La LCD 901 es un ejemplo de dispositivo de visualización.
El dispositivo de disco magnético 920, la ROM 913 o similar almacena un sistema operativo 921 (OS), un sistema Windows 922, programas 923 y archivos 924. Los programas 923 son ejecutados por la CPU 911, el sistema operativo 921 y el sistema de Windows 922.
Los programas 923 almacenan software o programas para ejecutar las funciones descritas anteriormente como "la unidad de generación de claves maestras 110", "la unidad de almacenamiento de claves maestras 120", "la unidad de generación de vectores de claves 130", "la unidad de generación de vectores de generación de claves 140", "la unidad de distribución de claves 150", "la unidad de configuración de información de transmisión 210", "la unidad de generación de vectores de cifrado 220", "la unidad de transmisión de datos 230", "la unidad de generación de clave de sesión 240", "la unidad de generación de información de verificación 250", "la unidad de configuración de información de verificación 260", "la unidad de generación de información de firma 270", "la unidad de entrada de vectores 310", "la unidad de almacenamiento de vectores de claves 320", "la unidad de operación de emparejamiento 330", "la unidad de cálculo de logaritmo discreto 340", "la unidad de deformación de vectores 350", "la unidad de desencriptado 360", "la unidad de verificación de manipulación 370", "la unidad de adquisición de vectores de claves 410", "la unidad de generación de vectores de claves 420", "la unidad de generación de vectores de generación de claves 430", "la unidad de distribución de claves 440" y así sucesivamente, y otros programas. Los programas son leídos y ejecutados por la CPU 911.
Los archivos 924 almacenan información, datos, valores de señales, valores de variables y parámetros, tales como "la clave pública maestra pk", "la clave secreta maestra sk", "el vector de cifrado c" y "el vector de clave" descritos anteriormente, cada uno de los cuales se almacena como un elemento de un "archivo" o una "base de datos". El "archivo" o la "base de datos" se almacena en un dispositivo de almacenamiento, tal como un disco o una memoria. La información, los datos, los valores de señales, los valores de variables y los parámetros almacenados en el dispositivo de almacenamiento, tal como el disco o la memoria, son leídos por la CPU 911 a través de un circuito de lectura/escritura en una memoria principal o una memoria caché, y se utilizan para operaciones de la CPU 911, tal como extracción, búsqueda, referencia, comparación, cálculo, computación, procesamiento, salida, impresión y visualización. La información, los datos, los valores de señales, los valores de variables y los parámetros se almacenan temporalmente en la memoria principal, la memoria caché o una memoria intermedia durante las operaciones de la CPU 911, tales como extracción, búsqueda, referencia, comparación, cálculo, computación, procesamiento, salida, impresión y visualización.
En los diagramas de flujo descritos anteriormente, una flecha representa principalmente una entrada/salida de datos o una señal, y cada valor de datos o señal se almacena en la RAM 914 u otros tipos de medio de almacenamiento tal como un disco óptico o un chip IC. Los datos o la señal se transfieren en línea a través del bus 912, una línea de señal, un cable, otros tipos de medio de transferencia o una onda de radio.
Lo que se describe anteriormente como "una unidad ..." puede ser "un circuito ...", "un dispositivo ...", "una herramienta ..."," unos medios ..." o "una función ...", y también puede ser "una etapa ...", "un procedimiento ..." o "un proceso ...". Lo que se describe como "un dispositivo ..." puede ser "un circuito ...", "un dispositivo ...", "una herramienta ...", "unos medios ..." o "una función ...", y también puede ser "una etapa ...", "un procedimiento ..." o "un proceso ...". Lo que se describe como "un proceso ..." puede ser "una etapa ...". Es decir, lo que se describe como "una unidad ..." puede implementarse mediante firmware almacenado en la ROM 913. Alternativamente, "la unidad ..." puede implementarse únicamente mediante software, o únicamente mediante hardware, tal como elementos, dispositivos, placas y cableado, o mediante una combinación de software y hardware, o mediante una combinación que incluya firmware. El firmware o software se almacena como un programa en un medio de almacenamiento tal como la ROM 913. El programa es leído por la CPU 911 y ejecutado por la CPU 911. Es decir, el programa hace que un ordenador o similar funcione como "la unidad ..." descrita anteriormente. Alternativamente, el programa hace que el ordenador o similar ejecute un procedimiento o método de "la unidad ..." descrita anteriormente.
Lista de signos de referencia
10: sistema de procesamiento criptográfico; 100: dispositivo de generación de claves; 110: unidad de generación de claves maestras; 120: unidad de almacenamiento de claves maestras; 130: unidad de generación de vectores de claves; 140: unidad de generación de vectores de generación de claves; 150: unidad de distribución de claves; 200: dispositivo de encriptado; 210: unidad de configuración de información de transmisión; 220: unidad de generación de vectores de cifrado; 230: unidad de transmisión de datos; 240: unidad de generación de clave de sesión; 250: unidad de generación de información de verificación; 260: unidad de configuración de información de verificación; 270: unidad de generación de información de firma; 300: dispositivo de desencriptado; 310: unidad de entrada de vectores; 320: unidad de almacenamiento de vectores de claves; 330: unidad de operación de emparejamiento; 340: unidad de cálculo de logaritmo discreto; 350: unidad de deformación de vectores; 360: unidad de desencriptado; 370: unidad de verificación de manipulación; 400: dispositivo de delegación de claves; 410: unidad de adquisición de vectores de claves; 420: unidad de generación de vectores de claves; 430: unidad de generación de vectores de generación de claves; 440: unidad de distribución de claves.

Claims (1)

  1. REIVINDICACIONES
    Sistema de procesamiento criptográfico (10) que realiza un proceso criptográfico utilizando espacios vectoriales duales de un espacio V y un espacio V* emparejados a través de una operación de emparejamiento, en el que el espacio V* es un espacio vectorial dual del espacio V, en el que los grupos de emparejamiento bilineal (G1, G2 , Gt, g1, g2 , q) son una tupla de tres grupos cíclicos G1, G2 y Gt de orden q, g1 es un generador de G1, y g2 es un generador de G2 ; en el que los grupos de emparejamiento bilineal (G1, G2 , Gt, g1, g2 , q) satisfacen la condición de un emparejamiento bilineal no degenerado computable en tiempo polinómico que se muestra en la fórmula 73:
    [Fórmula 73]
    Figure imgf000092_0001
    en el que para cualquier £ e G1, n e G2 ,
    e(s^,tr1) = e (4 ,T1)st
    y
    e { g \ ’ g 2 ) * 1 ’
    en el que los espacios vectoriales N-dimensionales V y V* están construidos por productos directos de G1 y G2 :
    Figure imgf000092_0002
    en el que un elemento x en el espacio V está representado por un vector N-dimensional
    * :=( A'o^l'-----r .Y-l<?l ) ;
    en el que un elemento y en el espacio V* está representado por un vector N-dimensional
    y : = ( 3 o í> 2»• • * * ‘J7 J V -1 & 2 ) ;
    comprendiendo el sistema de procesamiento criptográfico:
    un dispositivo de encriptado (200) que, utilizando un dispositivo de procesamiento, genera como vector de cifrado un vector en el espacio V, teniendo el vector información predeterminada incrustada en el mismo; y
    un dispositivo de desencriptado (300) que, utilizando el dispositivo de procesamiento y utilizando un vector predeterminado en el espacio V* como vector de clave, realiza la operación de emparejamiento sobre el vector de cifrado generado por el dispositivo de encriptado y el vector de clave, para desencriptar el vector de cifrado y extraer información relativa a la información predeterminada,
    en el que el sistema de procesamiento criptográfico realiza el proceso criptográfico en el espacio V y el espacio V* que son espacios vectoriales N-dimensionales,
    en el que el dispositivo de encriptado genera como el vector de cifrado un vector N-dimensional x: = (X0g1, ..., xN-1g1) en el espacio V, y
    en el que el dispositivo de desencriptado, usando un vector N-dimensional n: = (n0g2 , ..., nN-1g2) en el espacio V* como vector de clave, realiza la operación de emparejamiento e (x, n) que se muestra en la fórmula 1:
    [Fórmula 1]
    e(x.rj) := n fLo1 e(X'9i, 11192)
    en el vector de cifrado x: = (X0gi, ..., XN-igi) y el vector de clave n: = (H0g2 , ..., hn-i g2);
    en el que el sistema de procesamiento criptográfico realiza el proceso criptográfico en el espacio V y el espacio V* que tienen una base canónica A: = (a0 , ..., aN-1) y una base canónica A*: = (a*0 , ..., a*N-1) respectivamente, la base canónica A y la base canónica A* satisfacen una condición para una base ortonormal mostrada en la fórmula 2:
    [Fórmula 2]
    e [ a h a*j j = u^ > ¡
    donde
    si i = j para todo i y j, entonces 5¡j = 1 , y si i t j,
    entonces óíj; = 0 , y
    u t 1;
    en el que el espacio V y el espacio V* tienen la base canónica A: = (ao, ..., aN-1) y la base canónica A*: = (a*0, ..., a*N-1) que tienen mapas de distorsión $i, j y $*i, j se muestran en la fórmula 3 y la fórmula 4 respectivamente:
    [Fórmula 3]
    Si t ¡ j ( a j ) = a¡ y
    k '4- J .entonces^- j ( Ct ^ ^ — 0 ;
    [Fórmula 4]
    Figure imgf000093_0001
    en el que el dispositivo de encriptado genera como vector de cifrado un vector de una base B construido a partir de la base canónica A del espacio V realizando una operación predeterminada, y
    en el que el dispositivo de desencriptado utiliza como el vector de clave un vector de base B* construido a partir de la base canónica A* del espacio V* realizando una operación derivada de la operación predeterminada, siendo la base B* y la base B bases ortonormales;
    en el que la base B es una base B: = (bo, ..., bN-1) construida a partir de la base canónica A mediante la realización de una operación que se muestra en la fórmula 5, y
    en el que la base B* es una base B*: = (b*0 , ..., b*N-1) construida a partir de la base canónica A* realizando una operación que se muestra en la fórmula 6:
    [Fórmula 5]
    Figure imgf000093_0002
    donde
    Figure imgf000094_0001
    [Fórmula 6]
    Figure imgf000094_0002
    / = 0 ....... •v - 1
    donde
    Figure imgf000094_0003
    donde el dispositivo de encriptado incluye
    una unidad de configuración de información de transmisión (210) que, usando el dispositivo de procesamiento, genera como un vector de información de transmisión un vector en el que p se establece como un coeficiente de un vector de base bn de vectores de base bi (i = 0, ..., N-1) en la base B del espacio V, y
    una unidad de generación de vectores de cifrado (220) que, utilizando el dispositivo de procesamiento, genera el vector de cifrado, y
    en el que el dispositivo de desencriptado incluye
    una unidad de almacenamiento de vectores de claves (320) que almacena, como el vector de clave y en un dispositivo de almacenamiento, un vector en el que se establece un valor predeterminado como un coeficiente de un vector de base predeterminado b*n de vectores de base b*i (i = 0, ..., N-1) en la base B* del espacio V*, y en el que cada una de las informaciones de predicado vi (i = 0, ..., pi_v-1) se establece como un coeficiente de cada uno de los vectores de base b*i (i = 0, ..., pi_v-1) (pi_x > pi_v), y
    una unidad de operación de emparejamiento (330) que, usando el dispositivo de procesamiento, realiza la operación de emparejamiento en el vector de cifrado generado por la unidad de generación del vector de cifrado y el vector de clave almacenado por la unidad de almacenamiento del vector de clave, y extrae del vector de cifrado un valor relativo al p establecido como el coeficiente del vector de base bn; en el que el sistema de procesamiento criptográfico comprende además:
    un dispositivo de generación de claves (100) que incluye una unidad de generación de vectores de claves (130) que, utilizando el dispositivo de procesamiento, genera como un vector de clave ki_, 0 un vector en el que se establece un valor predeterminado como un coeficiente del vector de base predeterminado b*n de vectores de base b*i (i = 0, ..., n-1) en la base B* del espacio V*, y en el que cada una de las informaciones de predicado vi (i = 0, ..., pi_-1) se establece como un coeficiente de cada uno de los vectores de base b*i (i = 0, ..., pl-1);
    en el que el dispositivo de generación de claves comprende además una unidad de almacenamiento de claves maestras (120) que almacena en un dispositivo de almacenamiento la base B* del espacio V* como clave secreta maestra; y en el que la unidad de generación de vectores de claves (130) está configurada para generar, usando el dispositivo de procesamiento, como el vector de clave kL, 0 un vector en el que un valor predeterminado se establece como un coeficiente de un vector de base b*n de vectores de base b*i (i = 0, ..., N-1) en la base B* del espacio V*, y en el que cada una de las informaciones de predicado vi (i = 0, ..., pl-1) se establece como un coeficiente de cada uno de los vectores de base b*i (i = 0, ..., pl-1), siendo la base B* del espacio V* la clave secreta maestra almacenada por la unidad de almacenamiento de claves maestras;
    en el que plx^N;
    en el que la unidad de configuración de información de transmisión genera el vector de información de transmisión como el vector pv mostrado en la fórmula 11, y
    en el que la unidad de generación de vectores de cifrado genera un vector de cifrado c añadiendo un vector de información de atributo xv que se muestra en la fórmula 12 al vector de información de transmisión pv que se muestra en la fórmula 11:
    [Fórmula 11]
    Figure imgf000095_0001
    donde
    p: valor predeterminado;
    [Fórmula 12]
    Figure imgf000095_0002
    donde
    S1... , Sd. valores predeterminados,
    x: información de atributo (i = 0, ..., jlx-1), y
    x: valor predeterminado (i = |Jlx,, ..., n-1).
    Sistema de procesamiento criptográfico según la reivindicación 1,
    en el que el dispositivo de generación de claves incluye además
    una unidad de generación de vectores de generación de claves (140) que, utilizando el dispositivo de procesamiento, genera, como vectores de generación de claves kL,i (i = Jl, ..., n-1) para generar un vector de clave de nivel inferior del vector de clave k l, 0 , un ((n-1) - jl-1) número de vectores en los que se establece un valor predeterminado como coeficiente de un vector de base b*i, para cada i de i = jl , ..., n-1.
    Sistema de procesamiento criptográfico según la reivindicación 2, que comprende además:
    un dispositivo de delegación de claves (400) que incluye
    una unidad de generación de vectores de claves (420) que, utilizando el dispositivo de procesamiento, genera un vector de clave kL+1,0 que es el vector de clave de nivel inferior del vector de clave kL,0 agregando el vector de clave l,0 y vectores v¡(i = jl,..., jl 1- 1 ) en el que cada información de predicado vi (i = jl, ..., jl+1-1 ) se establece como un coeficiente de cada uno de los vectores de generación de claves kL, i (i = Jl,..., Jl 1-1), y
    una unidad de generación de vectores de generación de claves (430) que, utilizando el dispositivo de procesamiento, genera vectores de generación de claves kL+1, i (i = jl 1,..., n-1) para generar el vector de clave de nivel inferior del vector de clave kL,o haciendo un cambio predeterminado en los vectores de generación de claves kL, i (i = Jl+1, ..., n-1).
    Sistema de procesamiento criptográfico según la reivindicación 1,
    en el que la unidad de generación de vectores de claves establece cada una de la información de predicado v¡ (i = 0, ..., jl-1) como el coeficiente de cada uno de los vectores de base b*i (i = 0, ..., jl-1), de modo que un producto interno de cada una de la información de predicado v¡ (i = 0, ..., jl-1) y cada información de atributo x¡ (i = 0, ..., jl-1) se convierte en 0.
    Sistema de procesamiento criptográfico según la reivindicación 1 o la reivindicación 4,
    en el que la unidad de generación de vectores de claves genera el vector de clave kL,0 como se muestra en la fórmula 7.
    [Fórmula 7]
    Figure imgf000095_0003
    donde
    Figure imgf000096_0001
    primer elemento de una clave secreta de L-ésimo nivel,
    cl,0 , ..., cl,l-1: valores predeterminados, y
    v: información de predicado.
    Sistema de procesamiento criptográfico según la reivindicación 2,
    en el que la unidad de generación de vectores de claves genera el vector de clave kL,0 como se muestra en la fórmula 8, y
    en el que la unidad de generación de vectores de generación de claves genera los vectores de generación de claves kL,i (i = |Jl,..., n-1) como se muestra en la fórmula 8.
    [Fórmula 8]
    Figure imgf000096_0002
    donde
    Figure imgf000096_0003
    primer elemento de una clave secreta de L-ésimo nivel,
    Figure imgf000096_0004
    j-ésimo elemento de la clave secreta de L-ésimo nivel,
    v¡. información de predicado, y
    OL,0,...,OL,L-1,OLpL,0,...,OLpL,L-1,...,OL,n-1fl,...,OL,n-1,L-1: valores predeterminados.
    Sistema de procesamiento criptográfico según la reivindicación 3, en el que el dispositivo de delegación de claves comprende además una unidad de adquisición de vectores de claves (410) que adquiere un vector de clave en el espacio V* que puede desencriptar vectores de cifrado predeterminados en el espacio V, en el que la unidad de adquisición de vectores de claves adquiere un vector de clave k_, 0 de L-ésimo nivel en el que cada información de predicado vi (i = 0, ..., jl-1) se establece en cada uno de los vectores de base b*i (i = 0, ..., jl-1) de vectores de base b*i (i = 0, ..., N-1) en la base B*, y también adquiere vectores de generación de claves kL,i (i = Jl,..., Jl 1-1) en el que se establece un valor predeterminado como un coeficiente de cada uno de los vectores de base b*i, y en el que la unidad de generación de vectores de claves (420) está configurada además para generar, utilizando el dispositivo de procesamiento, un nuevo vector de clave en el espacio V* que puede desencriptar algunos vectores de cifrado de los vectores de cifrado predeterminados que pueden ser desencriptados por el vector de clave, en el que la unidad de generación de vectores de claves genera el vector de clave kL+1,0 como se muestra en la fórmula 9, basándose en el vector de clave kL,0 y los vectores de generación de claves kL, i.
    [Fórmula 9]
    Figure imgf000096_0005
    donde
    primer elemento de una clave secreta de (L+1)-ésimo nivel,
    Figure imgf000097_0001
    primer elemento de una clave secreta de L-ésimo nivel,
    k L i' - i-ésimo elemento de la clave secreta de L-ésimo nivel,
    v: información de predicado, y
    OL+1,0: valor predeterminado.
    8. Sistema de procesamiento criptográfico según la reivindicación 7,
    en el que la unidad de adquisición de vectores de claves adquiere como vector de clave un vector en el que la información de predicado se establece como un coeficiente de un vector de base predeterminado en una base predeterminada B* del espacio V*, y
    en el que la unidad de generación de vectores de claves genera el nuevo vector de clave agregando, al vector de clave adquirido por la unidad de adquisición de vectores de claves, un vector en el que la información del predicado se establece como un coeficiente de un vector de base en la base B* distinto del vector de base predeterminado.
    9. Sistema de procesamiento criptográfico según la reivindicación 7 o la reivindicación 8,
    en el que la unidad de generación de vectores de claves, utilizando el dispositivo de procesamiento, genera un vector de clave kL 1,0 de (L+1)-ésimo nivel agregando, al vector de clave kL,0, vectores vi (i = Pl,..., pl 1-1) en los que, para cada i de i = pl,..., Pl+1-1, la información de predicado vi se establece como un coeficiente del vector de base b*i en el vector de generación de claves kL, adquirido por la unidad de adquisición de vectores de claves.
    10. Sistema de procesamiento criptográfico según la reivindicación 9,
    en el que la unidad de generación de vectores de claves multiplica el coeficiente del vector de base b*i del vector de generación de claves kL, i por un factor de información de predicado vi (i = pl,..., pl+1- 1 ) tal que un producto interno de cada una de la información de predicado vi (i = pl,..., pl 1- 1 ) y cada información de atributo Xi (i = pl,..., pl 1-1 ) se convierte en 0.
    11. Sistema de procesamiento criptográfico según la reivindicación 9 o 10, que comprende además:
    una unidad de generación de vectores de generación de claves (430) que, utilizando el dispositivo de procesamiento, genera vectores de generación de claves kL+1, i (i = Pl+1, ..., n-1) para generar un vector de clave de nivel inferior del vector de clave kL+1,0 haciendo un cambio predeterminado en los vectores de generación de claves kL, i (i = pl,..., pl+1-1 ).
    12. Sistema de procesamiento criptográfico según la reivindicación 11,
    en el que la unidad de adquisición de vectores de claves adquiere el vector de clave kL,0 y los vectores de generación de claves kL, i (i = pl,..., n-1) como se muestra en la fórmula 10,
    en el que la unidad de generación de vectores de claves genera el vector de clave kL+1,0 como se muestra en la fórmula 10, basado en el vector de clave kL, 0 y los vectores de generación de claves kL, i adquiridos por la unidad de adquisición de vectores de claves, y
    en el que la unidad de generación de vectores de generación de claves genera los vectores de generación de claves kL+1, i (i = Pl+1, ..., n-1) como se muestra en la fórmula 10, basándose en los vectores de generación de claves kL, i adquiridos por la unidad de adquisición de vectores de claves.
    [Fórmula 10]
    Figure imgf000098_0001
    donde
    * £ 1 ,0 : primer elemento de la clave secreta de (L+1)-ésimo nivel,
    CL \, i elemento i-ésimo de la clave secreta de (L+1)-ésimo nivel,
    k*L 0 : primer elemento de la clave secreta de L-esimo nivel,
    Figure imgf000098_0002
    i-ésimo elemento de la clave secreta de L-ésimo nivel,
    v: información de predicado,
    aL+1,0 : valor predeterminado,
    OL+1 j. valor predeterminado,
    Figure imgf000098_0003
    y
    01 ,001 ,y1 ,....,01 ,n-1 : valores predeterminados.
    Dispositivo de encriptado (200) que realiza un proceso criptográfico utilizando espacios vectoriales duales de un espacio V y un espacio V* emparejados a través de una operación de emparejamiento, en el que el espacio V* es un espacio vectorial dual del espacio V, en el que los grupos de emparejamiento bilineal (G1, G2 , GT, g1, g2 , q) son una tupla de tres grupos cíclicos G1, G2 y Gt de orden q, g1 es un generador de G1, y g2 es un generador de G2 ; en el que los grupos de emparejamiento bilineal (G1, G2 , Gt, g1, g2 , q) satisfacen la condición de un emparejamiento bilineal no degenerado computable en tiempo polinómico que se muestra en la fórmula 73:
    [Fórmula 73]
    Figure imgf000098_0004
    en el que para cualquier £ e G1, n e G2 ,
    Figure imgf000098_0005
    y
    en el que los espacios vectoriales N-dimensionales V y V* están construidos por productos directos de Gi y G2 :
    r N •*- ........... .... ' v f ......................... N . S-A .
    V ^ G j x . - . x G i V S = G 2 x - x G2 ;
    en el que un elemento x en el espacio V está representado por un vector N-dimensional
    Figure imgf000099_0001
    en el que un elemento y en el espacio V* está representado por un vector N-dimensional
    Figure imgf000099_0002
    en el que el dispositivo de encriptado (200) comprende un dispositivo de procesamiento;
    en el que el dispositivo de encriptado (200), utilizando el dispositivo de procesamiento, genera como un vector de cifrado un vector en el espacio V, teniendo el vector información predeterminada incrustada en el mismo;
    en el que el dispositivo de encriptado (200) realiza el proceso criptográfico en el espacio V y el espacio V* que son espacios vectoriales N-dimensionales,
    en el que el dispositivo de encriptado genera como el vector de cifrado un vector N-dimensional x: = (X0g1..., XN-1g1) en el espacio V, y
    en el que el dispositivo de encriptado (200) realiza el proceso criptográfico en el espacio V y el espacio V* que tienen una base canónica A: = (a0 , ..., aN-1) y una base canónica A*: = (a*0 , ..., a*N-1) respectivamente, la base canónica A y la base canónica A* satisfacen una condición para una base ortonormal mostrada en la fórmula 2:
    [Fórmula 2]
    Figure imgf000099_0003
    donde
    si i = j para todos i y j, entonces 5¡j = 1 , y si i * j,
    entonces 5¡,j = 0 , y
    u *1;
    en el que el espacio V y el espacio V* tienen la base canónica A: = (ao, ..., aN-i) y la base canónica A*: = (a*0 , ..., a*N-i) que tienen mapas de distorsión $¡, j y $*, j se muestran en la fórmula 3 y la fórmula 4 respectivamente:
    [Fórmula 3]
    Si t i j [ a j ) = a¡y
    k ^ j .entonces
    Figure imgf000099_0004
    ;
    [Fórmula 4]
    Figure imgf000100_0001
    en el que el dispositivo de encriptado (200) genera como vector de cifrado un vector de base B construido a partir de la base canónica A del espacio V realizando una operación predeterminada,
    en el que como vector de clave para el desencriptado se utiliza un vector de base B* construido a partir de la base canónica A* del espacio V* realizando una operación derivada de la operación predeterminada, siendo la base B* y la base B bases ortonormales;
    en el que la base B es una base B: = (bo, ..., bN-1) construida a partir de la base canónica A mediante la realización de una operación que se muestra en la fórmula 5, y
    en el que la base B* es una base B*: = (b*0 , ..., b*N-1) construida a partir de la base canónica A* realizando una operación que se muestra en la fórmula 6:
    [Fórmula 5]
    Figure imgf000100_0002
    donde
    Figure imgf000100_0003
    [Fórmula 6]
    Figure imgf000100_0004
    donde
    Figure imgf000100_0005
    donde el dispositivo de encriptado incluye
    una unidad de configuración de información de transmisión (210) que, usando el dispositivo de procesamiento, genera como un vector de información de transmisión un vector en el que p se establece como un coeficiente de un vector de base bn de vectores de base bi (i = 0, ..., N-1) en la base B del espacio V, y
    una unidad de generación de vectores de cifrado (220) que, utilizando el dispositivo de procesamiento, genera el vector de cifrado agregando un vector en el que cada información de atributo xi (i = 0, ..., gi_x-1) se establece como un coeficiente de cada uno de los vectores de base bi (i = 0, ..., gi_x-1) al vector de información de transmisión generado por la unidad de configuración de información de transmisión, en el que la base B* del espacio V* es una clave secreta maestra; y
    en el que gi_xáN;
    en el que la unidad de configuración de información de transmisión genera un vector de información de transmisión pv mostrado en la fórmula 11, y
    en el que la unidad de generación de vectores de cifrado genera un vector de cifrado c añadiendo un vector de información de atributo xv que se muestra en la fórmula 12 al vector de información de transmisión pv que se muestra en la fórmula 11:
    [Fórmula 11]
    Figure imgf000101_0001
    donde
    p: valor predeterminado;
    [Fórmula 12]
    Figure imgf000101_0002
    donde
    S1,... , Sd. valores predeterminados,
    x: información de atributo (i = 0, ..., jlx-1), y
    x: valor predeterminado (i = jlx,, ..., n-1).
    Dispositivo de encriptado según la reivindicación 13, que comprende además:
    una unidad de configuración de información de verificación (260) que, usando el dispositivo de procesamiento, genera como un vector de información de verificación un vector en el que la información que incluye información de verificación se establece como un coeficiente de un vector de base predeterminado distinto del vector de base bn y los vectores de base bi (i = 0, ..., jlx-1),
    en el que la unidad de generación de vectores de cifrado genera el vector de cifrado añadiendo el vector de atributo, el vector de información de transmisión y el vector de información de verificación generado por la unidad de configuración de información de verificación, y
    el dispositivo de encriptado, que comprende además:
    una unidad de generación de información de firma (270) que, usando el dispositivo de procesamiento, genera información de firma para ser verificada en base a la información de verificación establecida por la unidad de configuración de información de verificación; y
    una unidad de transmisión de datos (230) que transmite a un dispositivo de desencriptado el vector de cifrado generado por la unidad de generación de vectores de cifrado, la información de firma generada por la unidad de generación de información de firma y la información de verificación.
    Dispositivo de encriptado según la reivindicación 14,
    en el que la unidad de configuración de información de verificación genera como vector de información de verificación un vector en el que la información que incluye la primera información de verificación com se establece como el coeficiente del vector de base predeterminado,
    en el que la unidad de generación de vectores de cifrado genera el vector de cifrado como datos c1, en el que la unidad de generación de información de firma incluye
    una unidad de generación c2 que genera datos c2 encriptando un mensaje m y una segunda información de verificación dec por una clave de sesión generada a partir de p configurado como el coeficiente del vector de base bn,
    una unidad de generación c3 que genera la primera información de verificación com como datos c3, y una unidad de generación c4 que genera, como datos c4, información de firma generada cifrando los datos c1 y los datos c2 mediante una tercera información de verificación r que puede generarse en base a la primera información de verificación com y la segunda información de verificación dec, y en el que la unidad de transmisión de datos genera los datos c1 generados por la unidad de generación de vectores de cifrado, los datos c2 generados por la unidad de generación c2, los datos c3 generados por la unidad de generación c3 y los datos c4 generados por la unidad de generación c4.
    Dispositivo de encriptado según la reivindicación 14,
    en el que la unidad de configuración de información de transmisión genera un vector de información de transmisión pv mostrado en la fórmula 16,
    en el que la unidad de configuración de información de verificación genera un vector de información de verificación cv mostrado en la fórmula 17,
    en el que la unidad de generación de vectores de cifrado genera datos c1 agregando un vector de información de atributo xv que se muestra en la fórmula 18, el vector de información de transmisión pv que se muestra en la fórmula 16 y el vector de información de verificación cv que se muestra en la fórmula 17,
    en el que la unidad de generación c2 genera los datos c2 basados en la fórmula 19, y
    en el que la unidad de generación c4 genera los datos c4 basados en la fórmula 20;
    [Fórmula 16]
    p v := p b n
    donde
    p: valor predeterminado;
    [Fórmula 17]
    Figure imgf000102_0001
    donde
    Sn+2. valor predeterminado, y
    com: primera información de verificación;
    [Fórmula 18]
    Figure imgf000102_0002
    donde
    S1, ... , Sd. valores predeterminados,
    x: información de atributo (i = 0, ..., pi_x-1), y
    x: valor predeterminado (i = pi_x,, ..., n-1);
    [Fórmula 19]
    c2 :=SEKDF(/o(w’dec)
    donde
    C2. datos c2,
    SEciave (x): proceso de encriptado de datos x mediante una clave simétrica,
    KDF(x): proceso de generar una clave basada en datos x,
    K: up,
    m : mensaje, y
    dec: segunda información de verificación;
    [Fórmula 20]
    Figure imgf000103_0001
    donde
    C1: datos c1,
    C2 : datos c2,
    C4 : datos c4,
    Macdave (x): proceso de encriptado de datos x mediante una clave, y
    r tercera información de verificación.
    Dispositivo de encriptado según la reivindicación 13,
    en el que la unidad de configuración de información de transmisión genera como un vector de información de transmisión mv[t] un vector en el que un mensaje m se establece como un coeficiente de un vector de base b[t]n de vectores de base b[t]¡ (i = 0, ..., N-1) en una base B[t] del espacio V, para cada t de t = 0, ..., n-1 , y
    en el que la unidad de generación de vectores de cifrado genera un vector de cifrado c[t] agregando, al vector de información de transmisión mv[t] generado por la unidad de configuración de información de transmisión, un vector de información de atributo xv[t] en el que cada uno de los valores de los coeficientes s[t]¡ que se muestran en la fórmula 28 se establece como un coeficiente de cada uno de los vectores de base b[t]¡ (i = 0, ..., |Jlx-1), para cada t de t = 0, ..., n-1;
    [Fórmula 28]
    I n - U i '1 = x v .
    Figure imgf000103_0002
    t= Q si ° i X i
    donde
    ó1] ' 1 :
    1 valor del coeficiente,
    Sí. valor predeterminado y
    x: información de atributo.
    Dispositivo de encriptado según la reivindicación 17,
    en el que la unidad de configuración de información de transmisión genera el vector de información de transmisión mv[t] como se muestra en la fórmula 29, y
    en el que la unidad de generación del vector de cifrado genera el vector de cifrado c[t] agregando el vector de información de atributo xv[t] como se muestra en la fórmula 30 al vector de información de transmisión mv[t] como se muestra en la fórmula 29;
    [Fórmula 29]
    Figure imgf000103_0003
    [Fórmula 30]
    Figure imgf000104_0001
    donde
    valor predeterminado (i = 0, n-1, t = 0, n-2),
    4 " 11 : = ^ ¿ -( X " - 0 24 í ] ) i =0,...,n-1,
    5¡: valor predeterminado (i = 0, ..., n-1),
    x¡: información de atributo (i = 0, ..., pi_x-1), y
    x¡: valor predeterminado (i = pi_x,, ..., n-1).
    Dispositivo de encriptado según la reivindicación 17, que comprende además:
    una unidad de configuración de información de verificación (260) que genera como un vector de información de verificación ck[t] un vector v[t] en el que la información que incluye información de verificación vk se establece como un coeficiente de un vector de base predeterminado b[t]j que no sea el vector de base b[t]n y los vectores de base b[t]¡ (i = 0, ..., gi_x-1), para cada t de t = 0, ..., n-1,
    en el que la unidad de generación del vector de cifrado genera el vector de cifrado c[t] agregando el vector de información de atributo xv[t], el vector de información de transmisión mv[t], y el vector de información de verificación ck[t] generado por la unidad de configuración de información de verificación, para cada t de t = 0, ..., n-1, y
    el dispositivo de encriptado, que comprende además:
    una unidad de generación de información de firma (270) que genera información de firma I para ser verificada en base a la información de verificación vk establecida por la unidad de configuración de información de verificación, y
    una unidad de transmisión de datos (230) que transmite a un dispositivo de desencriptado los vectores de cifrado c[t] (t = 0, ..., n-1) generados por la unidad de generación de vectores de cifrado, la información de firma I generada por la unidad de generación de información de firma y la información de verificación vk. Dispositivo de encriptado según la reivindicación 19,
    en el que la unidad de configuración de información de transmisión genera el vector de información de transmisión mv[t] como se muestra en la fórmula 36,
    en el que la unidad de configuración de información de verificación genera el vector de información de verificación ck[1] como se muestra en la fórmula 37, y
    en el que la unidad de generación del vector de cifrado genera el vector de cifrado c[t] agregando el vector de información de atributo xv[t] como se muestra en la fórmula 38 al vector de información de transmisión mv[t] como se muestra en la fórmula 36 y el vector de información de verificación ck[t] como se muestra en la fórmula 37;
    [Fórmula 36]
    Figure imgf000104_0002
    [Fórmula 37]
    Figure imgf000104_0003
    donde
    ón+2 '. valor predeterminado, y
    vk: información de verificación;
    [Fórmula 38]
    Figure imgf000105_0001
    donde
    Figure imgf000105_0002
    valor predeterminado (i = 0, ..., n-1, t = 0, ..., n-2),
    SY 11 : = < 5 ; x ¿ -( ^ f _ 024 í ] ) i — 0 , .... 77 — 1
    5¡: valor predeterminado (i = 0, ..., n-1),
    xr. información de atributo (i = 0, ..., pi_x-1), y
    xr. valor predeterminado (i = pi_x,, ..., n-1).
    Dispositivo de desencriptado (300) que realiza un proceso criptográfico utilizando espacios vectoriales duales de un espacio V y un espacio V* emparejados a través de una operación de emparejamiento, en el que el espacio V* es un espacio vectorial dual del espacio V, en el que los grupos de emparejamiento bilineal (G1, G2 , Gt, g1, g2 , q) son una tupla de tres grupos cíclicos G1, G2 y Gt de orden q, g1 es un generador de G1, y g2 es un generador de G2 ; en el que los grupos de emparejamiento bilineal (G1, G2 , Gt, g1, g2 , q) satisfacen la condición de un emparejamiento bilineal no degenerado computable en tiempo polinómico que se muestra en la fórmula 73:
    [Fórmula 73]
    Figure imgf000105_0003
    en el que para cualquier £ e G1, n e G2 ,
    e(s4 , t i j) = e(^ ,r j )st
    y
    Figure imgf000105_0004
    en el que los espacios vectoriales N-dimensionales V y V* están construidos por productos directos de G1 y G2 :
    Figure imgf000105_0005
    en el que un elemento x en el espacio V está representado por un vector N-dimensional
    Figure imgf000105_0006
    en el que un elemento y en el espacio V* está representado por un vector N-dimensional
    Figure imgf000105_0007
    en el que el dispositivo de desencriptado (300) comprende un dispositivo de procesamiento;
    en el que el dispositivo de desencriptado (300), utilizando el dispositivo de procesamiento y utilizando un vector predeterminado en el espacio V* como vector de clave, realiza la operación de emparejamiento sobre el vector de cifrado generado por el dispositivo de encriptado y el vector de clave, para desencriptar el vector de cifrado y extraer información relativa a la información predeterminada,
    en el que el dispositivo de desencriptado (300) realiza el proceso criptográfico en el espacio V y el espacio V* que son espacios vectoriales N-dimensionales,
    en el que el dispositivo de desencriptado, usando un vector N-dimensional n: = (n0g2 , ..., nN-1g2) en el espacio V* como vector de clave, realiza la operación de emparejamiento e (x, n) que se muestra en la fórmula 1:
    [Fórmula 1]
    e ( x . r } ) := n ¡ V e (X‘Qi, V iQ i)
    en el vector de cifrado x: = (X0g1, XN-1g1) y el vector de clave n: = (n0g2 , ..., nN-1 g2);
    en el que el dispositivo de desencriptado (300) realiza el proceso criptográfico en el espacio V y el espacio V* que tienen una base canónica A: = (ao, ..., aN-1) y una base canónica A*: = (a*0 , ..., a*N-1) respectivamente, la base canónica A y la base canónica A* satisfacen una condición para una base ortonormal mostrada en la fórmula 2:
    [Fórmula 2]
    Figure imgf000106_0001
    donde
    si i = j para todos i y j, entonces 5¡,¡ = 1, y si i * j,
    entonces 5 , = 0 , y
    u * 1;
    en el que el espacio V y el espacio V* tienen la base canónica A: = (ao, ..., aN-1) y la base canónica A*: = (a*0 , ..., a*N-1) que tienen mapas de distorsión $¡, j y $*¡, j se muestran en la fórmula 3 y la fórmula 4 respectivamente:
    [Fórmula 3]
    Figure imgf000106_0002
    k ^ j .entonces (f)^ j ( üj^ ) = 0 ;
    [Fórmula 4]
    Figure imgf000106_0003
    y
    en el que el dispositivo de desencriptado utiliza como el vector de clave un vector de base B* construido a partir de la base canónica A* del espacio V* realizando una operación derivada de la operación predeterminada, siendo la base B* y la base B bases ortonormales;
    en el que la base B es una base B: = (bo, ..., bN-1) construida a partir de la base canónica A mediante la realización de una operación que se muestra en la fórmula 5, y
    en el que la base B* es una base B*: = (b*0 , b*N-i) construida a partir de la base canónica A* realizando una operación que se muestra en la fórmula 6:
    [Fórmula 5]
    Figure imgf000107_0001
    donde
    Figure imgf000107_0002
    [Fórmula 6]
    Figure imgf000107_0003
    donde
    Figure imgf000107_0004
    en el que el dispositivo de desencriptado incluye
    una unidad de almacenamiento de vectores de claves (320) que almacena, como el vector de clave y en un dispositivo de almacenamiento, un vector en el que se establece un valor predeterminado como un coeficiente de un vector de base predeterminado b*n de vectores de base b*i (i = 0, ..., N-1) en la base B* del espacio V*, y en el que cada una de las informaciones de predicado vi (i = 0, ..., pi_v-1) se establece como un coeficiente de cada uno de los vectores de base b*i (i = 0, ..., pi_v-1) (pi_x > pi_v), y
    una unidad de operación de emparejamiento (330) que, usando el dispositivo de procesamiento, realiza la operación de emparejamiento en el vector de cifrado generado por la unidad de generación del vector de cifrado y el vector de clave almacenado por la unidad de almacenamiento del vector de clave, y extrae del vector de cifrado un valor relativo al p establecido como el coeficiente del vector de base b n; en el que la base B* del espacio V* es una clave secreta maestra;
    en el que gi_xáN.
    Dispositivo de desencriptado según la reivindicación 21,
    en el que la unidad de entrada de vectores introduce un vector de cifrado c que se muestra en la fórmula 13,
    en el que la unidad de almacenamiento de vectores de claves almacena un vector de clave kv mostrado en la fórmula 14, y
    en el que la unidad de operación de emparejamiento realiza la operación de emparejamiento como se muestra en la fórmula 15, y extrae up;
    [Fórmula 13]
    Figure imgf000107_0005
    donde
    p: valor predeterminado,
    <51 ,... , 5d\ valores predeterminados,
    xr. información de atributo (i = 0, ^Lx-1), y
    xi: valor predeterminado (i: valor predeterminado (i = ^Lx,..., n-1);
    [Fórmula 14]
    Figure imgf000108_0001
    donde
    01.0 , 02.0 , ..., olv, 0 : valores predeterminados, y
    vi: información de predicado;
    [Fórmula 15]
    Figure imgf000108_0002
    donde
    e í^ b ^ b * j = U ^ 'J ,
    si i = j para todos i y j, entonces 5ij = 1, y si i ¿ j, entonces 5i,¡ = 0, uí1,
    cr. coeficiente del vector de base bi del vector de cifrado c, y
    kvr. coeficiente del vector de base b*i del vector de clave kv.
    Dispositivo de desencriptado según la reivindicación 21,
    en el que la unidad de entrada de vectores introduce el vector de cifrado en el que p se establece como el coeficiente del vector de base bn, en el que cada información de atributo xi (i = 0, ..., ^Lx-1) se establece como el coeficiente de cada uno de los vectores de base bi (i = 0, ..., ^Lx-1), y en el que la información que incluye información de verificación se establece como un coeficiente de un vector de base predeterminado distinto del vector de base bn y los vectores de base bi (i = 0, ..., ^Lx-1), ingresa la información de la firma para ser verificada en base a la información de verificación, e ingresa la información de verificación, comprendiendo el dispositivo de desencriptado además:
    una unidad de deformación de vectores de claves (350) que, usando el dispositivo de procesamiento, deforma el vector de clave almacenado por la unidad de almacenamiento de vector de clave agregando el vector en el que la información que incluye información de verificación se establece como un coeficiente de un vector de base predeterminado,
    en el que la unidad de operación de emparejamiento realiza la operación de emparejamiento en el vector de cifrado introducido por la unidad de entrada de vector y el vector de clave deformado por la unidad de deformación del vector de clave, y extrae del vector de cifrado un valor relativo al conjunto p establecido como el coeficiente del vector de base bn, y
    comprendiendo el dispositivo de desencriptado además:
    una unidad de verificación de manipulación (370) que, utilizando el dispositivo de procesamiento y basándose en la información de verificación, verifica que la información de la firma no ha sido manipulada. Dispositivo de desencriptado según la reivindicación 23,
    en el que la unidad de entrada de vectores introduce
    datos c1, que son el vector de cifrado en el que la información que incluye la primera información de verificación com se establece como información de verificación,
    datos c2 generados encriptando un mensaje m y segunda información de verificación dec por una clave de sesión generada basándose en el conjunto p establecido como el coeficiente del vector de base bn, datos c3 que son la primera información de verificación com, y
    datos c4 que son la información de firma generada al encriptar los datos c1 y los datos c2 mediante la tercera información de verificación r que se puede generar en base a la primera información de verificación com y la segunda información de verificación dec,
    comprendiendo el dispositivo de desencriptado además:
    una unidad de desencriptado c2 que genera una clave de sesión a partir del valor relativo a p extraído por la unidad de operación de emparejamiento desencripta los datos c2 por la clave de sesión generada y adquiere el mensaje m y la segunda información de verificación dec,
    en el que la unidad de verificación de manipulación genera la tercera información de verificación r a partir de la segunda información de verificación adquirida por la unidad de desencriptado c2 y los datos c3 y verifica que los datos c1 y los datos c2 no hayan sido manipulados en base a la tercera información de verificación generada r y los datos c4.
    Dispositivo de desencriptado según la reivindicación 24,
    en el que la unidad de entrada de datos introduce los datos c1, los datos c2, los datos c3 y los datos c4 como se muestra en la fórmula 21,
    en el que la unidad de almacenamiento de vectores de claves almacena un vector de clave kv mostrado en la fórmula 22,
    en el que la unidad de deformación del vector de clave transforma el vector de clave kv basado en la fórmula 23,
    en el que la unidad de operación de emparejamiento realiza la operación de emparejamiento como se muestra en la fórmula 24 y adquiere un valor K con respecto a p,
    en el que la unidad de desencriptado c2 genera una clave simétrica a partir del valor K relativo a p basado en la fórmula 25, desencripta los datos c2 por la clave simétrica generada y adquiere el mensaje m y la segunda información de verificación dec, y
    en el que la unidad de verificación de manipulación genera la tercera información de verificación r basada en la fórmula 26 y verifica la manipulación basada en la fórmula 27;
    [Fórmula 21]
    Figure imgf000109_0001
    C2.= SEkdf(k) (m,dec).
    C3:= com,
    C4:=Macr(C1,C2)
    donde
    Ó1,..., 5d,5n+2. valores predeterminados,
    x: información de atributo (i = 0, ..., pi_x-1),
    x: valor predeterminado (i = pi_x-1, ..., n-1),
    p: valor predeterminado,
    com: primera información de verificación,
    dec: segunda información de verificación,
    r tercera información de verificación,
    K : up,
    e[bh b * ) = u,
    m: mensaje,
    SEciave (x); proceso de encriptado de datos x mediante una clave simétrica
    KDF(x): proceso de generación de una clave basada en datos x, y
    Macciave (x): proceso de encriptado de datos x mediante una clave;
    [Fórmula 22]
    Figure imgf000110_0001
    donde
    oi.0 , 02.0 , ..., olv,0: valores predeterminados, y
    v: información de predicado;
    [Fórmula 23]
    Figure imgf000110_0002
    donde
    o: valor predeterminado,
    C3 : datos c3,
    vector en el que se establece un valor predeterminado como coeficiente de un vector de base b*n+2, y
    Figure imgf000110_0003
    vector en el que se establece un valor predeterminado como coeficiente de un vector de
    base b*n+3;
    [Fórmula 24]
    Figure imgf000110_0004
    donde
    e [ b n b * ) = U ^ 'J
    si i = j para todo i y j, entonces 5¡,¡ = 1, si i 4 j, entonces 5¡,¡ = 0, u 41,
    a. coeficiente del vector de base b¡ del vector de cifrado c, y
    Figure imgf000111_0001
    coeficiente del vector de base b*¡ del vector de clave kv después de deformarse;
    [Fórmula 25]
    (m ,dec):= SD KDF^ ( c 2 )
    donde
    m: mensaje,
    dec: segunda información de verificación,
    SDciave (x): proceso de desencriptado de datos x mediante una clave simétrica,
    KDF(x): proceso de generación de una clave basada en datos x, y
    C2 : datos c2;
    [Fórmula 26]
    Figure imgf000111_0002
    donde
    r tercera información de verificación,
    Renc (pub,com,dec). proceso de generación r de pub,com,dec, y
    pub. información pública;
    [Fórmula 27]
    Figure imgf000111_0003
    donde
    r . tercera información de verificación,
    l . símbolo distinguido, y
    (xi )
    Figure imgf000111_0004
    es un proceso que devuelve 1 si
    x 2 = x 2 y clave = clave'.
    Dispositivo de desencriptado según la reivindicación 21,
    en el que la unidad de entrada de vector ingresa como un vector de cifrado c[t] un vector v[t] en el que un mensaje m se establece como un coeficiente de un vector de base b[t]n de vectores de base b[t]¡ (i = 0, ..., N-1) en una base B[t] del espacio V, y en el que cada uno de los valores de coeficiente s[t]i que se muestra en la fórmula 31 se establece como un coeficiente de cada uno de los vectores de base b[t]¡ (i = 0, ..., jlx-1), para cada t de t = 0, ..., n-1,
    en el que la unidad de almacenamiento de vectores de claves almacena, como un vector de clave kv[t] y en el dispositivo de almacenamiento, un vector v [t] en el que un valor predeterminado se establece como un coeficiente de un vector de base b[t]*n de vectores de base b[t]*¡ (i = 0, ..., N-1) en una base B[t]* del espacio V*, y en el que cada información de predicado vi (i = 0, ..., jlv-1) se establece como un coeficiente de cada uno de los vectores b[t]*¡ (i = 0, ..., jlv-1) (|Jlx s |_n_v), para cada t de t = 0, ..., n-1, y
    en el que la unidad de operación de emparejamiento realiza la operación de emparejamiento en el vector de cifrado c[t]n introducido por la unidad de entrada del vector y el vector de clave kv[t] almacenado por la unidad de almacenamiento de vectores de claves y genera, a partir del vector de cifrado, información f relativa al mensaje m establecido como el coeficiente del vector de base b[t]n, para cada t de t = 0, ..., n-1, y también realiza la operación de emparejamiento sobre el vector de base b[t]n y el vector de clave kv[t] y genera información g para extraer el mensaje m de la información f, para cada t de t = 0, ..., n-1, comprendiendo el dispositivo de desencriptado además:
    una unidad de cálculo de logaritmo discreto (340) que calcula un problema de logaritmo discreto a una base de la información g en la información f generada por la unidad de operación de emparejamiento, y calcula el mensaje m;
    [Fórmula 31]
    Figure imgf000112_0001
    donde
    :
    1 valor del coeficiente,
    5í. valor predeterminado y
    xi información de atributo.
    Dispositivo de desencriptado según la reivindicación 26,
    en el que la unidad de entrada de vector introduce el vector de cifrado c[t] como se muestra en la fórmula 32,
    en el que la unidad de almacenamiento de vectores de claves almacena el vector de clave kv[t] como se muestra en la fórmula 33,
    en el que la unidad de operación de emparejamiento realiza la operación de emparejamiento como se muestra en la fórmula 34 y genera la información f y la información g, y
    en el que la unidad de cálculo de logaritmo discreto resuelve el problema de logaritmo discreto como se muestra en la fórmula 35 para calcular el mensaje m;
    [Fórmula 32]
    Figure imgf000112_0002
    donde
    valor predeterminado (i = 0, ..., n-1, t = 0, ..., n-2),
    Figure imgf000112_0003
    i = 0 , 1 ,
    5r. valor predeterminado (i = 0, ..., n-1),
    x¡. información de atributo (i = 0, ..., pi_x-1),
    x¡. valor predeterminado (i = pi_x, ..., n-1), y
    m: mensaje;
    [Fórmula 33]
    Figure imgf000113_0001
    donde
    oi.0 , 02.0 , ..., olv, 0 : valores predeterminados, y
    vi. información de predicado;
    [Fórmula 34]
    Figure imgf000113_0002
    donde
    Figure imgf000113_0003
    r
    !M j ) = U ° ‘J ,
    si i = _/ para todo i y j, entonces ó/, y = 1, y
    si i # y, entonces ó , y = 0,
    CW ;
    * coeficiente del vector de base bW¡ del vector de cifrado cW, y
    Figure imgf000113_0004
    coeficiente del vector de base bW*¡ del vector de clave kvW después de haber sido deformado;
    [Fórmula 35]
    m:=Dlogg( / )
    donde
    Dlogx (y) indica la resolución de un problema de logaritmos discretos para basar x en y.
    Dispositivo de desencriptado según la reivindicación 26,
    en el que la unidad de entrada de vectores introduce el vector de cifrado c[t] en el que la información que incluye información de verificación vk se establece como un coeficiente de un vector de base predeterminado b[t]j que no sea el vector de base b[t]n y los vectores de base b[t]¡ (i = 0, ..., pLx-1) para cada t de t = 0, ..., n-1, introduce la información de la firma I para ser verificada en base a la información de verificación vk e introduce la información de verificación vk,
    comprendiendo el dispositivo de desencriptado además:
    una unidad de deformación del vectores de claves (350) que deforma el vector de clave kv[t] agregando, al vector de clave almacenado por la unidad de almacenamiento de vectores de claves, el vector v [t] en el que la información que incluye la información de verificación vk se establece como un coeficiente de un vector de base predeterminado b[t]k para cada t de t = 0, ..., n - 1,
    en el que la unidad de operación de emparejamiento realiza la operación de emparejamiento, para cada t de t = 0, ..., n-1, en el vector de cifrado c[t] introducido por la unidad de entrada del vector y el vector de clave kv[t] deformado por la unidad de deformación del vector de clave y genera la información f, y también realiza la operación de emparejamiento, para cada t de t = 0, ..., n-1, sobre el vector de base b[t]n y el vector de clave deformado kv[t] y genera la información g, y
    comprendiendo el dispositivo de desencriptado que comprende:
    una unidad de verificación de manipulación (370) que verifica que la información de la firma I no ha sido manipulada en base a la información de verificación vk.
    Dispositivo de desencriptado según la reivindicación 28,
    en el que la unidad de entrada de vector introduce el vector de cifrado c[t] como se muestra en la fórmula 39, la información de la firma I debe ser verificada en base a la información de verificación vk, y la información de verificación vk,
    en el que la unidad de almacenamiento de vectores de claves almacena el vector de clave kv[t] como se muestra en la fórmula 40,
    en el que la unidad de deformación del vector de clave transforma el vector de clave kv[t] basándose en la fórmula 41, y
    en el que la unidad de operación de emparejamiento realiza la operación de emparejamiento como se muestra en la fórmula 42 y extrae la información f y la información g;
    [Fórmula 39]
    Figure imgf000114_0001
    donde
    Figure imgf000114_0002
    valor predeterminado (i = 0, ..., n-1, t = 0, ..., n-2),
    Figure imgf000114_0003
    _
    5¡: valor predeterminado (i = 0, ..., n-1),
    x¡: información de atributo (i = 0, ..., gi_x-1),
    x¡: valor predeterminado (i = gi_x, ..., n-1),
    m: mensaje,
    5n+i. valor predeterminado y
    vk: información de verificación;
    [Fórmula 40]
    Figure imgf000115_0001
    donde
    oi.0 , 02.0..., olv, 0 : valores predeterminados, y
    vi. información de predicado.
    [Fórmula 41]
    kv := kvW + a(vkk^n+2 - k[% 3)
    donde
    o: valor predeterminado,
    C3 : datos c3,
    Figure imgf000115_0002
    vector en el que un valor predeterminado se establece como un coeficiente de un vector de base b[t]*n+2, y
    k [ l ] * ■
    L v ,n 3 vector en el que un valor predeterminado se establece como un coeficiente de un vector de base b[t]*n+3;
    [Fórmula 42]
    Figure imgf000115_0003
    donde
    Figure imgf000115_0004
    C¡W :
    si i = j para todo i y j, entonces 5¡,¡= 1, y si i j, entonces 5 ¡ , j = 0, 1 coeficiente del vector de base T v / '1:
    b[tl*¡ del vector de cifrado c[t], y coeficiente del vector de base b[tl*¡ del vector de clave kv[tl después de haber sido deformado.
    Método de procesamiento criptográfico para realizar un proceso criptográfico utilizando espacios vectoriales duales de un espacio V y un espacio V* emparejados a través de una operación de emparejamiento, en el que el espacio V* es un espacio vectorial dual del espacio V, en el que los grupos de emparejamiento bilineal (Gi, G2 , Gt, gi, g2 , q) son una tupla de tres grupos cíclicos Gi, G2 y Gt de orden q, gi es un generador de Gi, y g2 es un generador de G2 ; en el que los grupos de emparejamiento bilineal (Gi, G2 , Gt, gi, g2 , q) satisfacen la condición de un emparejamiento bilineal no degenerado computable en tiempo polinómico que se muestra en la fórmula 73:
    [Fórmula 73]
    Figure imgf000116_0001
    en el que para cualquier £ e G 1 ' n e G 2 ,
    e(st,tn) = e(£,n)st y
    e(g1,g2) * 1;
    en el que los espacios vectoriales N-dimensionales V y V* están construidos por productos directos de G1 y G2 :
    , .............. N A- .......... . ^ ........ ..........— '.. N A.. ,.. — ■ ,....1 .
    V ^ G [ x---xGi V V G i x - x G , .
    en el que un elemento x en el espacio V está representado por un vector N-dimensional
    Figure imgf000116_0002
    en el que un elemento y en el espacio V* está representado por un vector N-dimensional
    Figure imgf000116_0003
    comprendiendo el método de procesamiento criptográfico:
    generar, mediante un dispositivo de encriptado (200) que usa un dispositivo de procesamiento, como un vector de cifrado un vector en el espacio V, teniendo el vector información predeterminada incrustada en el mismo; y
    realizar, mediante un dispositivo de desencriptado (300) utilizando el dispositivo de procesamiento y utilizando un vector predeterminado en el espacio V* como vector de clave, la operación de emparejamiento sobre el vector de cifrado generado por el dispositivo de encriptado y el vector de clave, para desencriptar el vector de cifrado y extraer información relativa a la información predeterminada, en el que el método de procesamiento criptográfico realiza el proceso criptográfico en el espacio V y el espacio V* que son espacios vectoriales N-dimensionales,
    en el que el dispositivo de encriptado genera como el vector de cifrado un vector N-dimensional x: = (X0g1, ..., xN-1g1) en el espacio V, y
    en el que el dispositivo de desencriptado, usando un vector N-dimensional n: = (n0g2 , ..., nN-1g2) en el espacio V* como vector de clave, realiza la operación de emparejamiento e (x, n) que se muestra en la fórmula 1:
    [Fórmula 1]
    e(x.r)) := nfLo1 e009b rjiQz)
    en el vector de cifrado x: = (X0g1, ..., XN-1g1) y el vector de clave n: = (n0g2 , ..., nN-1g2);
    en el que el método de procesamiento criptográfico realiza el proceso criptográfico en el espacio V y el espacio V* que tienen una base canónica A: = (a0 , ..., aN-1) y una base canónica A*: = (a*0 , ..., a*N-1) respectivamente, la base canónica A y la base canónica A* satisfacen una condición para una base ortonormal mostrada en la fórmula 2:
    [Fórmula 2]
    Figure imgf000117_0001
    donde
    si i = j para todo i y j, entonces 6i,j = 1, y si i * j,
    entonces 5¡j = 0 , y
    u * 1;
    en el que el espacio V y el espacio V* tienen la base canónica A: = (ao, ..., aN-i) y la base canónica A*: = (a*0, ..., a*N-i) que tienen mapas de distorsión $¡, j y $*, j se muestran en la fórmula 3 y la fórmula 4 respectivamente:
    [Fórmula 3]
    Figure imgf000117_0002
    [Fórmula 4]
    Figure imgf000117_0003
    en el que el dispositivo de encriptado genera como vector de cifrado un vector de una base B construido a partir de la base canónica A del espacio V realizando una operación predeterminada, y
    en el que el dispositivo de desencriptado utiliza como el vector de clave un vector de base B* construido a partir de la base canónica A* del espacio V* realizando una operación derivada de la operación predeterminada, siendo la base B* y la base B bases ortonormales;
    en el que la base B es una base B: = (b0, ..., bN-i) construida a partir de la base canónica A realizando una operación que se muestra en la fórmula 5, y
    en el que la base B* es una base B*: = (b*0, ..., b*N-i) construida a partir de la base canónica A* realizando una operación que se muestra en la fórmula 6:
    [Fórmula 5]
    Figure imgf000117_0004
    donde
    Figure imgf000117_0005
    [Fórmula 6]
    Figure imgf000117_0006
    donde
    Figure imgf000118_0001
    donde el dispositivo de encriptado incluye
    una unidad de configuración de información de transmisión (210) que, usando el dispositivo de procesamiento, genera como un vector de información de transmisión un vector en el que p se establece como un coeficiente de un vector de base bn de vectores de base bi (i = 0, ..., N-1) en la base B del espacio V, y
    una unidad de generación de vectores de cifrado (220) que, utilizando el dispositivo de procesamiento, genera el vector de cifrado agregando un vector en el que cada información de atributo xi (i = 0, ..., pi_x-1) se establece como un coeficiente de cada uno de los vectores de base bi (i = 0, ..., pi_x-1) al vector de información de transmisión generado por la unidad de configuración de información de transmisión, y
    en el que el dispositivo de desencriptado incluye
    una unidad de almacenamiento de vectores de claves (320) que almacena, como el vector de clave y en un dispositivo de almacenamiento, un vector en el que se establece un valor predeterminado como coeficiente de un vector de base predeterminado b*n de vectores de base b*i (i = 0, ..., N-1) en la base B* del espacio V*, y en el que cada información de predicado vi (i = 0, ..., pi_v-1) se establece como un coeficiente de cada uno de los vectores de base b*i (i = 0, ..., pi_v-1) (pi_x > pi_v), y
    una unidad de operación de emparejamiento (330) que, usando el dispositivo de procesamiento, realiza la operación de emparejamiento en el vector de cifrado generado por la unidad de generación del vector de cifrado y el vector de clave almacenado por la unidad de almacenamiento del vector de clave, y extrae del vector de cifrado un valor relativo al p establecido como el coeficiente del vector de base bn;
    en el que el método de procesamiento criptográfico comprende además:
    generar, mediante un dispositivo de generación de claves (100) que incluye una unidad de generación de vectores de claves (130) utilizando el dispositivo de procesamiento, como un vector de clave ki_, 0 un vector en el que se establece un valor predeterminado como un coeficiente del vector de base predeterminado b n de vectores de base b*i (i = 0, ..., n-1) en la base B* del espacio V*, y en el que cada información de predicado vi (i = 0, ..., pi_-1) se establece como un coeficiente de cada uno de los vectores de base b*i (i = 0, ..., ml-1);
    en el que el dispositivo de generación de claves comprende además una unidad de almacenamiento de claves maestras (120) que almacena en un dispositivo de almacenamiento la base B* del espacio V* como una clave secreta maestra; y en el que la unidad de generación de vectores de claves (130) está configurada para generar, usando el dispositivo de procesamiento, como el vector de clave kL, 0 un vector en el que un valor predeterminado se establece como un coeficiente de un vector de base b*n de vectores de base b*i (i = 0, ..., N-1) en la base B* del espacio V*, y en el que cada información de predicado vi (i = 0, ..., pl-1) se establece como un coeficiente de cada uno de los vectores de base b*i (i = 0, ..., pl-1), siendo la base B* del espacio V* la clave secreta maestra almacenada por la unidad de almacenamiento de claves maestras;
    en el que pLx^N;
    en el que la unidad de configuración de información de transmisión genera un vector de información de transmisión pv mostrado en la fórmula 11, y
    en el que la unidad de generación de vectores de cifrado genera un vector de cifrado c añadiendo un vector de información de atributo xv que se muestra en la fórmula 12 al vector de información de transmisión pv que se muestra en la fórmula 11:
    [Fórmula 11]
    Figure imgf000118_0002
    donde
    p: valor predeterminado;
    [Fórmula 12]
    Figure imgf000119_0001
    donde
    51,...,5d: valores predeterminados,
    xí. información de atributo (i = 0, ..., pLx-1), y
    x: valor predeterminado (i = pLx,, ..., n-1).
    31. Programa de procesamiento criptográfico para realizar el método de procesamiento criptográfico según la reivindicación 30 cuando se ejecuta en un ordenador.
ES10766983T 2009-04-23 2010-04-14 Sistema de procesamiento de encriptado Active ES2873230T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009104915 2009-04-23
JP2009264576A JP5349261B2 (ja) 2009-04-23 2009-11-20 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
PCT/JP2010/056639 WO2010122926A1 (ja) 2009-04-23 2010-04-14 暗号処理システム

Publications (1)

Publication Number Publication Date
ES2873230T3 true ES2873230T3 (es) 2021-11-03

Family

ID=43011044

Family Applications (1)

Application Number Title Priority Date Filing Date
ES10766983T Active ES2873230T3 (es) 2009-04-23 2010-04-14 Sistema de procesamiento de encriptado

Country Status (7)

Country Link
US (1) US8559638B2 (es)
EP (1) EP2424154B1 (es)
JP (1) JP5349261B2 (es)
KR (1) KR101359200B1 (es)
CN (1) CN102415047B (es)
ES (1) ES2873230T3 (es)
WO (1) WO2010122926A1 (es)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101246241B1 (ko) * 2009-04-24 2013-03-22 니뽄 덴신 덴와 가부시키가이샤 암호화 장치, 복호장치, 암호화 방법, 복호방법, 세큐러티 방법, 프로그램 및 기록매체
WO2010123117A1 (ja) * 2009-04-24 2010-10-28 日本電信電話株式会社 有限体演算装置、有限体演算方法、プログラム及び記録媒体
ES2602052T3 (es) * 2009-11-20 2017-02-17 Mitsubishi Electric Corporation Sistema de procesamiento criptográfico, dispositivo de generación de clave, dispositivo de delegación de clave, dispositivo de cifrado, dispositivo de descifrado, método de procesamiento criptográfico y programa de procesamiento criptográfico
JP5334873B2 (ja) * 2010-01-08 2013-11-06 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
WO2011086687A1 (ja) 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム
JP5424974B2 (ja) 2010-04-27 2014-02-26 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
CN103329478B (zh) * 2011-01-18 2015-11-25 三菱电机株式会社 密码系统以及密码系统的密码处理方法
JP5606351B2 (ja) * 2011-02-09 2014-10-15 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム
JP5677273B2 (ja) 2011-11-18 2015-02-25 三菱電機株式会社 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置
JP5680007B2 (ja) * 2012-03-06 2015-03-04 三菱電機株式会社 暗号システム、暗号方法及び暗号プログラム
JP5730805B2 (ja) * 2012-04-04 2015-06-10 日本電信電話株式会社 格子問題に基づく階層型内積暗号システム,格子問題に基づく階層型内積暗号方法,装置
JP6057725B2 (ja) * 2013-01-15 2017-01-11 三菱電機株式会社 情報処理装置
WO2014112170A1 (ja) * 2013-01-16 2014-07-24 三菱電機株式会社 情報処理装置及び情報処理方法及びプログラム
WO2014112048A1 (ja) * 2013-01-16 2014-07-24 三菱電機株式会社 暗号システム、再暗号化鍵生成装置、再暗号化装置、暗号方法及び暗号プログラム
US8559631B1 (en) * 2013-02-09 2013-10-15 Zeutro Llc Systems and methods for efficient decryption of attribute-based encryption
EP2860905A1 (en) * 2013-10-09 2015-04-15 Thomson Licensing Method for ciphering a message via a keyed homomorphic encryption function, corresponding electronic device and computer program product
EP3057262B1 (en) * 2013-10-09 2021-07-28 Mitsubishi Electric Corporation Cipher system, encryption device, re-encryption key generation device, re-encryption device, and cipher program
JP6053966B2 (ja) * 2014-01-14 2016-12-27 三菱電機株式会社 暗号システム及び再暗号化装置
CN106031080B (zh) 2014-02-24 2019-07-16 三菱电机株式会社 加密系统
DE112014007235B4 (de) 2014-12-05 2024-10-10 Mitsubishi Electric Corporation Kryptografisches System, Hauptschlüsselaktualisierungseinrichtung und Hauptschlüsselaktualisierungsprogramm
US9438412B2 (en) * 2014-12-23 2016-09-06 Palo Alto Research Center Incorporated Computer-implemented system and method for multi-party data function computing using discriminative dimensionality-reducing mappings
US10965459B2 (en) 2015-03-13 2021-03-30 Fornetix Llc Server-client key escrow for applied key management system and process
US10516534B2 (en) 2015-04-07 2019-12-24 Mitsubishi Electric Corporation Cryptographic system and key generation apparatus
CN105635135B (zh) * 2015-12-28 2019-01-25 北京科技大学 一种基于属性集及关系谓词的加密系统及访问控制方法
US10931653B2 (en) * 2016-02-26 2021-02-23 Fornetix Llc System and method for hierarchy manipulation in an encryption key management system
CN106533697B (zh) * 2016-12-06 2019-11-08 上海交通大学 随机数生成与提取方法及其在身份认证上的应用
US10205713B2 (en) * 2017-04-05 2019-02-12 Fujitsu Limited Private and mutually authenticated key exchange
WO2019016181A1 (en) 2017-07-18 2019-01-24 Legic Identsystems Ag METHOD AND DEVICES USED TO VERIFY AUTHORIZATION OF AN ELECTRONIC DEVICE
JP6456451B1 (ja) 2017-09-25 2019-01-23 エヌ・ティ・ティ・コミュニケーションズ株式会社 通信装置、通信方法、及びプログラム
WO2021146859A1 (en) * 2020-01-20 2021-07-29 Nokia Shanghai Bell Co., Ltd. Data privacy protection based polar coding
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2744309B1 (fr) * 1996-01-26 1998-03-06 Bull Cp8 Procede de communicatin cryptographique asymetrique, et objet portatif associe
CN100588131C (zh) * 2003-02-12 2010-02-03 松下电器产业株式会社 发送装置及无线通信方法
US20070223686A1 (en) * 2004-09-16 2007-09-27 Shidong Li Methods and apparatus for data and signal encryption and decryption by irregular subspace leaping
US8190553B2 (en) * 2007-12-20 2012-05-29 Routt Thomas J Methods and systems for quantum search, computation and memory
JP5094882B2 (ja) 2008-01-18 2012-12-12 三菱電機株式会社 暗号パラメータ設定装置及び鍵生成装置及び暗号システム及びプログラム及び暗号パラメータ設定方法及び鍵生成方法
KR101246241B1 (ko) * 2009-04-24 2013-03-22 니뽄 덴신 덴와 가부시키가이샤 암호화 장치, 복호장치, 암호화 방법, 복호방법, 세큐러티 방법, 프로그램 및 기록매체

Also Published As

Publication number Publication date
WO2010122926A1 (ja) 2010-10-28
CN102415047A (zh) 2012-04-11
KR101359200B1 (ko) 2014-02-05
EP2424154B1 (en) 2021-04-07
KR20120068762A (ko) 2012-06-27
EP2424154A1 (en) 2012-02-29
JP2010273317A (ja) 2010-12-02
EP2424154A4 (en) 2017-07-12
CN102415047B (zh) 2015-12-09
US20120045056A1 (en) 2012-02-23
JP5349261B2 (ja) 2013-11-20
US8559638B2 (en) 2013-10-15

Similar Documents

Publication Publication Date Title
ES2873230T3 (es) Sistema de procesamiento de encriptado
Zhang et al. Efficient large-universe multi-authority ciphertext-policy attribute-based encryption with white-box traceability
ES2693146T3 (es) Sistema de procesamiento criptográfico, dispositivo de generación de claves, dispositivo de cifrado, dispositivo de descifrado, sistema de procesamiento de firmas, dispositivo de firma y dispositivo de verificación
Baek et al. New constructions of fuzzy identity-based encryption
ES2627124T3 (es) Sistema de procesamiento de código, dispositivo de generación de claves, dispositivo codificador, dispositivo descodificador, procedimiento de procesamiento de código y programa de procesamiento de código
Zhandry How to avoid obfuscation using witness PRFs
ES2955589T3 (es) Sistema de procesamiento criptográfico, dispositivo de generación de clave, dispositivo de delegación de clave, dispositivo de cifrado, dispositivo de descifrado, procedimiento de procesamiento criptográfico y programa de procesamiento criptográfico
KR101606317B1 (ko) 암호 시스템, 암호 방법, 암호 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 및 복호 장치
JPWO2010123116A1 (ja) 情報生成装置、方法、プログラム及びその記録媒体
ES2365887A1 (es) Metodo de verificacion de procesos de descifrado.
Liu et al. Online/offline identity-based signcryption revisited
Miyaji et al. A scalable multiparty private set intersection
Matsuda et al. CCA proxy re-encryption without bilinear maps in the standard model
Wang et al. A new proxy re-encryption scheme for protecting critical information systems
Qin et al. Simultaneous authentication and secrecy in identity-based data upload to cloud
Ding et al. Efficient traceable attribute-based signature
KR20230141845A (ko) 임계값 키 교환
Watanabe et al. Identity-based hierarchical key-insulated encryption without random oracles
Tian A new strong multiple designated verifiers signature
Zhang et al. Leakage-resilient attribute based encryption in prime-order groups via predicate encodings
Zhao et al. Dual-server certificateless public key encryption with authorized equality test for outsourced IoT data
Gong et al. A homomorphic encryption scheme with adaptive chosen ciphertext security but without random oracle
Cheng et al. Secure obfuscation of encrypted verifiable encrypted signatures
Isshiki et al. Attacks to the proxy re-encryption schemes from IWSEC2011
Siddharth et al. A homomorphic encryption scheme over integers based on Carmichael's theorem