ES2686426T3 - Dispositivo de encriptación, dispositivo de desencriptación, método de encriptación, método de desencriptación, programa y medio de grabación - Google Patents
Dispositivo de encriptación, dispositivo de desencriptación, método de encriptación, método de desencriptación, programa y medio de grabación Download PDFInfo
- Publication number
- ES2686426T3 ES2686426T3 ES11809734.4T ES11809734T ES2686426T3 ES 2686426 T3 ES2686426 T3 ES 2686426T3 ES 11809734 T ES11809734 T ES 11809734T ES 2686426 T3 ES2686426 T3 ES 2686426T3
- Authority
- ES
- Spain
- Prior art keywords
- equal
- elements
- smax
- function
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key 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/0833—Key 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/0836—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0847—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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/3073—Public 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
Un dispositivo de encriptación (110) que comprende: una unidad generadora de número aleatorio (115) adaptada para generar un número aleatorio r; una primera unidad de encriptación (116a) adaptada para generar un texto cifrado C2, el texto cifrado C2 es un OR excluyente de una secuencia binaria dependiente del número aleatorio r y un texto plano M, el texto plano M es una secuencia binaria; una unidad generadora de clave común (116c) adaptada para generar una clave común K, la clave común es un elemento de un grupo cíclico GT; una segunda unidad de encriptación (116d) adaptada para encriptar el número aleatorio r por encriptación de clave común usando la clave común K para generar texto cifrado C(Ψ + 1); y una tercera unidad de encriptación (116e) adaptada para generar un texto cifrado C1 que incluye.
Description
DESCRIPCIÓN
Dispositivo de encriptación, dispositivo de desencriptación, método de encriptación, método de desencriptación, programa y medio de grabación
[Campo técnico]
5 La presente invención está relacionada con una técnica de seguridad y, en particular, con una técnica de encriptación. [Antecedentes de la técnica]
Un campo de estudio de la encriptación es la criptografía segura contra ataques con texto cifrado escogido (seguro contra CCA). En estos años en particular, se están haciendo estudios activamente para tratar de construir criptosistemas seguros contra CCA basados en Encriptación Basada en Identidad (IBE), que en general son seguros 10 únicamente contra Ataque de Texto plano Escogido (CPA) (véase por ejemplo la bibliografía no de patente 1). Por ejemplo, la bibliografía no de patente 2 propone trasformación CHK. En la trasformación CHK, se usa firma de un uso a fin de construir un esquema de encriptación seguro contra CCA basado en un esquema de encriptación basado en identidad seguro contra CPA arbitrario. Por ejemplo, la bibliografía no de patente 3 propone trasformación BK. En la trasformación BK, se usa un Código de Autenticación de Mensaje (MAC) y un esquema de compromiso de bits a fin 15 de construir un esquema de encriptación seguro contra CCA basado en una encriptación basada en identidad segura contra CPA arbitraria.
La bibliografía no de patente 4 propone dos esquemas de encriptación funcional totalmente seguros: un esquema totalmente seguro de encriptación basada en atributo (ABE) y un esquema totalmente seguro de encriptación preparatoria (PE) (ocultación de atributo) para predicados de producto interior. El esquema ABE se construye en 20 grupos de orden bilineal compuesto y soporta fórmulas de acceso monótono arbitrario. El esquema de encriptación preparatoria se construye por medio de un planteamiento sobre emparejamientos bilineales usando la noción de espacios de vectores de emparejamiento duales propuestos por Okamoto y Takashima.
La bibliografía de patente 1 describe un aparato de salida de información. El aparato de salida de información identifica, según una regla establecida para cada uno de protocolos de encriptación funcional o una regla establecida para cada 25 combinación de los protocolos, uno o más identificadores correspondientes a un protocolo de encriptación funcional particular o una combinación de los protocolos particulares, establece un elemento particular de la primera información de correspondencia correspondiente al identificador o identificadores, y tiene como salida primera información que es un texto cifrado o información de clave del esquema de encriptación funcional que corresponde al elemento particular de la primera información de correspondencia. Un aparato de procesamiento de información introduce la primera 30 información y la segunda información que es información de clave o un texto cifrado del esquema de encriptación funcional que corresponde a un elemento particular de segunda información de correspondencia hasta una función de desencriptación del esquema de encriptación funcional y, cuando es verdadero el valor de verdad de una fórmula lógica correspondiente a la combinación del elemento particular de primera información de correspondencia correspondiente a la primera información y el elemento particular de segunda información de correspondencia 35 correspondiente a la segunda información, genera un resultado de la desencriptación.
También se hace referencia a bibliografía no de patente 5, que está relacionada con formas bilineales no degenerativas.
[Bibliografía de la técnica anterior]
[Bibliografía de patente]
40 Bibliografía de patente 1: EP 2 464 051 A1.
[Bibliografía no de patente]
Bibliografía no de patente 1: D. Boneh, M. Franklin, "Identity based encryption from the Weil pairing," Crypto 2001, Lecture Notes in Computer Science, Vol. 2139, Springer-Verlag, págs. 213-229, 2001.
Bibliografía no de patente 2: R. Canetti, S. Halevi, J. Katz, "Chosen-Ciphertext Security from Identity-Based 45 Encryption", Proc. of EUROCRYPT'04, LNCS 3027, págs. 207-222, 2004.
Bibliografía no de patente 3: D. Boneh, J. Katz, "Improved Efficiency for CCA-Secure Cryptosystems Built Using Identity-Based Encryption," Proc. of CT-RSA'05, LNCS 3376, págs. 87-103, 2005.
Bibliografía no de patente 4: A. Lewko et al., "Fully Secure Functional Encryption: Attribute-Based Encryption and (Hierarchical) Inner Product Encryption", International Association for Cryptologic Research, págs. 1-56, 29 de marzo 50 de 2010. Bibliografía no de patente 5: T. A. Fisher, Lecture Notes "Linear Algebra: Non-degenerate Bilinear Forms", 2008.
5
10
15
20
25
30
35
40
45
[Compendio de la invención]
[Problemas a resolver por la invención]
Un texto cifrado generado sobre la base de la trasformación CHK descrita anteriormente incluye un texto plano encriptado, una firma de un uso del texto plano encriptado, y una clave de firma para verificar la firma de un uso. Por consiguiente, espacios de texto cifrado de un texto cifrado generado sobre la base de la trasformación CHK incluyen no únicamente un espacio para el texto plano encriptado sino también espacios para la firma de un uso y la clave de firma. Un texto cifrado generado sobre la base de la trasformación BK descrita anteriormente incluye un texto plano encriptado, un código de autenticación de mensaje y una cadena de compromiso de bits. Por consiguiente, un espacio de texto cifrado de un texto cifrado generado sobre la base de la trasformación BK incluye no únicamente un espacio para el texto plano encriptado sino también espacios para el código de autenticación de mensaje y la cadena de compromiso de bits. Esto es, espacios de texto cifrado generados sobre la base de la trasformación CHK y la trasformación BK incluyen espacios bidimensionales distribuidos únicamente para mejorar la seguridad contra CCA. Sin embargo, como la cantidad de computación y la cantidad de datos aumenta con el tamaño creciente de un espacio de texto cifrado, es deseable que el tamaño del espacio de texto cifrado sea lo más pequeño posible.
En la encriptación basada en identidad, una parte encriptadora tiene que obtener una ID de una parte de desencriptación antes de que la parte encriptadora pueda encriptar. Sería conveniente si se pudiera construir un esquema en el que una parte encriptadora pueda generar un texto cifrado sin tener que identificar una parte de desencriptación y una que cumpla una condición deseada puede desencriptar el texto cifrado.
La presente invención se ha hecho a la luz de estas circunstancias y proporciona un esquema de encriptación que es conveniente y puede mejorar la seguridad contra CCA sin un espacio de texto cifrado adicional para la seguridad contra CCA.
[Medios para resolver los problemas]
En encriptación según la presente invención, se genera un número aleatorio r y se genera un texto cifrado C2 que es el OR excluyente de una secuencia binaria dependiente del número aleatorio r y una secuencia binaria que es un texto plano M. La pareja de número aleatorio r y texto cifrado C2 son introducidos en cada una de funciones resistentes a colisión Hs (S = 1, ..., Smax) para generar Smax (Smax ^ 1) valores de función Hs(r, C2) (S = 1, ..., Smax). Se genera una clave común K que es un elemento de un grupo cíclico GT y la clave común K se usa para encriptar el número aleatorio r por el criptosistema de clave común, generando de ese modo un texto cifrado C(^ + 1). Un texto cifrado C1 que incluye
C(0) = o • br(0) + S,.2' ü,(0)-b,(0), C(X) = u ■ Z,„ °w w,(A,)-bA) +
^i=n(X)+l UA)*bt(X) y se genera un texto cifrado C<'V + 1¡
Aquí, ^ es un entero mayor o igual que 1, 9 es un entero mayor o igual que 0 y menor o igual que ^, n(9) es un entero mayor o igual que 1, Z(9) es un entero mayor o igual que 0, A es un entero mayor o igual que 1 y menor o igual que ^, I es una constante mayor o igual que 2 y menor o igual que n(0) + Z(0), 69 es un mapa bilineal no degenerativo que tiene como salida un elemento de un grupo cíclico Gt en respuesta a la introducción de n(9)+Z(9) elementos Yp(P = 1, ..., n(9) + Z(9)) de un grupo cíclico G1 y n(9)+Z(9) elementos Yp*(P = 1, ..., n(9) + Z(9)) de un grupo cíclico G2, i es un entero mayor o igual que 1 y menor o igual que n(9) + Z(9), bi(9) son vectores de base de n(9)+Z(9) dimensiones consistente cada uno en n(9) + Z(9) elementos del grupo cíclico G1, b*(9) son vectores de base de n(9)+Z(9) dimensiones consistente cada uno en n(9) + Z(9) elementos del grupo cíclico G2, 8(i, j) de una función delta de Kronecker, e<p(b¡(9), bj*(9)) = gTT T’ 6(i j) se satisfacen para el generador gT del grupo cíclico Gt y constantes t y t’, y w(A)^ = (w-i(A), ..., Wn(A)(A)) es un vector de n(A) dimensiones que consiste en w-i(A), ..., Wn(A)(A). Al menos algunos de los valores u, U|(0) (i = 2, ..., I), U|(A) (i = n(A) + 1, ..., n(A) + Z(A)) corresponden a al menos algunos de los valores de función Hs(r, C2) (S = 1, ..., Smax).
En desencriptación según la presente invención, si existen coeficientes const(j) que satisfacen SE = XmesET const(|j)-reparto (j) (j e SET), se usa primera información de clave D*(0), segunda información de clave D*(A) y textos cifrados introducidos C’(0) y C’(A) para generar una clave común K’ de la siguiente manera:
5
10
15
20
25
30
35
40
45
La clave común K' se usa para desencriptar un texto cifrado introducido C’(^ + 1), generando de ese modo un valor desencriptado r’. La pareja de valor desencriptado r’ y texto cifrado introducido C2’ son introducidos en cada una de las funciones resistentes a colisión Hs (S = 1, ..., Smax) para generar Smax (Smax ^ 1) valores de función Hs(r’, C2’) (S = 1, ..., Smax). Si los textos cifrados C’(0) y C’(A) no coinciden con textos cifrados C"(0) = u" ■ bi(0) + £i=2 1 u"(0)bi(0) y C"(A) = u" ■ £= n(A) Wi(A) bi(A) + £i=n(A)+1 n(A)+Z(A) u"(A)bi(A), respectivamente, se rechaza la desencriptación.
Aquí, v(A)^- = (v1(A), ..., vn(A)(A)) es un vector de n(A) dimensiones que consiste en v-i(A), ..., vn(A)(A), w(A)^ = (w-i(A), ..., Wn(A)(A)) es un vector de n(A) dimensiones que consiste en w-i(A), ..., Wn(A)(A), etiquetas LAB(A) (A = 1, ..., ^) son elementos de información que representan cada uno el vector de n(A) dimensiones v(A)^ o la negación -v(A)^ del vector de n(A) dimensiones v(A)^, "LAB(A) = v(A)^" significa que LAB(A) representa el vector de n(A) dimensiones v(A)^, "LAB(A) = -v(A)^" significa que LAB(A) representa la negación -v(A)^ del vector de n(A) dimensiones v(A)^, reparto(A) (A = 1, ..., ^) representa información repartida obtenida por reparto de secreto de información secreta SE, la primera información de clave es D*(0) = -SE ■ b-i*(0) + £1=21 coefi(0)b*(0), la segunda información de clave para A que satisface LAB(A) = v(A)^ es D*(A) = (reparto(A) + coef(A) ■ v-,(A)) ■ b-,*(A) + £,=2n(A) coef(A)vi(A)bi*(A) + £FnW+1 n(A)+Z(A) coefi(A)bi*(A), la segunda información de clave para A que satisface LAB(A) = -v(A)^ es D*(A) = reparto(A) ■ £1=1 n(A) vi(A)b*(A) + £i=n(A)+1 n(A)+Z(A) coefi(A) b*(A), y SET representa un conjunto de A que satisface {LaB(a) = v(A)^} A {v(A)^ ■ w(A)^ = 0} o {lAB(A) = -v(A)^} A (v(A)^ ■ w(A)^ t 0}. Al menos algunos de los valores de u", u"(0) (1 = 2, ..., I), u"(A) (1 = n(A) + 1, ..., n(A) + Z(A)) corresponden a al menos algunos de los valores de función Hs(r’, C2’) (S = 1, ..., Smax).
[Efectos de la invención]
La presente invención mejora la seguridad contra CCA porque si textos cifrados C’ (0) y C’ (A) no coinciden con C" (0) y C" (A), respectivamente, se rechaza la desencriptación. La presente invención no requiere un espacio de texto cifrado adicional para la seguridad contra CCA. Según la presente invención, una parte encriptadora puede generar un texto cifrado sin tener que identificar una parte de desencriptación y una que cumpla una condición deseada puede desencriptar el texto cifrado.
Así, la presente invención es conveniente y puede mejorar la seguridad contra CCA sin que sea necesario un espacio de texto cifrado adicional para la seguridad contra CCA.
[Breve descripción de los dibujos]
La figura 1 es un diagrama que ilustra datos en estructura de árbol que representan fórmulas lógicas normales;
la figura 2 es un diagrama que ilustra datos en estructura de árbol que representan fórmulas lógicas normales;
la figura 3 es un diagrama de bloques que ilustra un sistema de encriptación en una realización;
la figura 4 es un diagrama de bloques que ilustra un dispositivo de encriptación en la realización;
la figura 5 es un diagrama de bloques que ilustra un dispositivo de desencriptación en la realización;
la figura 6 es un diagrama de bloques que ilustra un dispositivo de generación de claves en la realización;
la figura 7 es un diagrama que ilustra un proceso de generación de claves en la realización;
la figura 8 es un diagrama que ilustra un proceso de encriptación en la realización;
la figura 9 es un diagrama que ilustra un proceso de desencriptación en la realización; y
la figura 10 es un diagrama que ilustra un proceso en la etapa 43 de la figura 9.
[Descripción detallada de las realizaciones]
Se describirán realizaciones para llevar a cabo la presente invención.
[Definiciones]
Matriz: El término "matriz" representa una distribución rectangular de elementos de un conjunto para el que se define una operación. No únicamente elementos de un anillo sino también elementos de un grupo pueden formar la matriz.
()T: ()T representa la matriz traspuesta de ■.
(■)-1: ()-1 representa la matriz inversa de ■.
a: a es un símbolo lógico que representa conjunción lógica (AND). v: v es un símbolo lógico que representa disyunción lógica (OR).
-: - es un símbolo lógico que representa negación (NOT).
5
10
15
20
25
30
35
40
45
50
Variable proposicional: Esto es, el dominio de variables proposicionales es un conjunto cuyos elementos son valores "verdadero" y "falso" de una proposición. Esto es, el dominio de variables proposicionales es un conjunto cuyos elementos son valores "verdadero" y "falso". Las variables proposicionales y las negaciones de las variables proposicionales son llamadas colectivamente literales.
Fórmula lógica: Una fórmula lógica es una fórmula que expresa una proposición en lógica matemática. Específicamente, "verdadero" y "falso" es fórmulas lógicas, una variable proposicional es una fórmula lógica, la negación de una fórmula lógica es una fórmula lógica, el AND de las fórmulas lógicas es una fórmula lógica, y el OR de las fórmulas lógicas es una fórmula lógica.
Z: Z representa el conjunto de enteros.
sec: sec representa un parámetro de seguridad (sec e Z, sec > 0).
0*: 0* representa una cadena de un número * de 0s.
1*: 1* representa una cadena de un número * de 1s.
{0, 1}*: {0, 1}* representa una secuencia binaria de una longitud arbitraria de bits. Un ejemplo de {0, 1}* es una secuencia de enteros que consisten en 0s y/o 1s. Sin embargo, {0, 1}* no se limita a una secuencia de enteros que consisten en 0s y/o 1s. {0, 1}* es sinónimo con un campo finito de orden 2 o una extensión de un campo finito de este tipo.
{0, 1}Z: {0, 1}Z es una secuencia binaria que tiene una longitud de bits de Z (Z e Z, Z > 0). Un ejemplo de {0, 1}Z es una secuencia de Z enteros 0s y/o 1s. Sin embargo, {0, 1}Z no se limita a una secuencia de enteros 0s y/o 1s. {0, 1}Z es sinónimo con un campo finito de orden 2 (cuando Z = 1) o una extensión de grado Z de un campo finito (cuando Z > 1).
(+): (+) representa un operador OR excluyente entre secuencias binarias. Por ejemplo, se aplica 10110011 (+) 11100001 = 01010010.
Fq: Fq representa un campo finito de orden q. Orden q es un entero mayor o igual que 1 y puede ser un primo o una potencia de un primo, por ejemplo. Esto es, un ejemplo de campo finito Fq es un campo de primos o un campo de extensión en un campo de primos. Una operación en el campo finito primo Fq puede ser definida simplemente por una operación de módulo con orden q como módulo, por ejemplo. Una operación en el campo finito de extensión Fq puede ser definida simplemente por una operación de módulo con un polinomio irreducible como módulo, por ejemplo. Un método específico para construir el campo finito Fq se describe en la bibliografía de referencia 1 "ISO/IEC 18033-2: Information technology - Security techniques - Encryption algorithms - Part 2: Asymmetric ciphers", por ejemplo.
0f: 0f representa la identidad aditiva (elemento cero) del campo finito Fq.
1f: 1f representa la identidad multiplicativa del campo finito Fq.
8(i, j): 8(i, j) representa una función delta de Kronecker. Cuando i = j, se satisface 8(i, j) = 1 f; cuando i # j, se satisface 5(i, j) = 0f.
E: E representa una curva elíptica definida en el campo finito Fq. La curva elíptica E es un conjunto que incluye un conjunto de puntos (x, y) que consisten en x,y e Fq que satisfacen la ecuación de Weierstrass en coordenadas afines dadas más adelante y un punto especial O llamado un punto en el infinito.
Aquí, se aplica a-i, a2, a3, a4, a6 e Fq.
Una operación binaria + llamada adición de curva elíptica se define para dos puntos arbitrarios en la curva elíptica E y una operación unaria - llamada operación inversa se define para un punto arbitrario en la curva elíptica E. Es muy conocido que un conjunto finito que consiste en puntos racionales en la curva elíptica E forma un grupo con respecto a adición de curva elíptica y que usando adición de curva elíptica se puede definir una operación llamada multiplicación escalar de curva elíptica. Métodos específicos para calcular operaciones elípticas tales como adición de curva elíptica en ordenador también son muy conocidos (véase la bibliografía de referencia 1, bibliografía de referencia 2 "RFC 5091: Identity-Based Cryptography Standard (IBCS) #1: Supersingular Curve Implementations of the BF and BB1 Cryptosystems", Bibliografía de referencia 3 "lan F. Blake, Gadiel Seroussi, Nigel Paul Smart, "Elliptic Curves in Cryptography", publicado por Peason Education, ISBN4-89471-431-0, por ejemplo).
Un conjunto finito que consiste en puntos racionales en la curva elíptica E tiene un subgrupo de orden p (p > 1). Por ejemplo, un conjunto finito E[p] que consiste en puntos de división-p en la curva elíptica E forma un subgrupo de un conjunto finito que consiste en puntos racionales en la curva elíptica E, donde #E es el número de elementos en el conjunto finito que consiste en los puntos racionales en la curva elíptica E y p es un primo grande que puede dividir #E. Los "puntos de división-p en la curva elíptica E" significa los puntos para los que la multiplicación escalar del valor de curva elíptica p ■ A en la curva elíptica E satisface p ■ A = O, entre los puntos A en la curva elíptica E.
5
10
15
20
25
30
35
40
Gi, G2, Gt: Gi, G2, y Gt representan grupos cíclicos de orden q. Ejemplos específicos de grupos cíclicos Gi y G2 son un conjunto finito E[p] que consiste en puntos de división-p en la curva elíptica E y sus subgrupos. G1 puede ser igual o no a G2. Un ejemplo específico de grupo cíclico Gt es un conjunto finito que constituye un campo de extensión sobre el campo finito Fq. Un ejemplo es un conjunto finito que consiste en las raíces p-ésimas de 1 en la clausura algebraica de un campo finito Fq. Cuando el orden de los grupos cíclicos G1, G2, Gt es igual al orden del campo finito Fq, la seguridad es más alta.
En la presente realización, operaciones definidas en los grupos cíclicos G1, G2 son expresadas aditivamente mientras operaciones definidas en el grupo cíclico Gt son expresadas multiplicativamente. Por ejemplo, x ■ O e G1 para x e Fq y O e G1 significa que una operación definida por el grupo cíclico G1 se repite x veces en O e G1; O1 + O2 e G1 para O1, O2 e G1 significa que una operación definida por el grupo cíclico G1 se realiza en operandos O1 e G1 y O2 e G1. Similarmente, por ejemplo x ■ O e G2 para x e Fq y O e G2 significa que una operación definida por el grupo cíclico G2 se realiza x veces en Q e G2; O1 + O2 e G2 para O1, O2 e G2 significa que una operación definida por el grupo cíclico G2 se realiza en operandos O1 e G2 y O2 e G2. Por otro lado, Ox e Gt para x e Fq y O e Gt significa que por ejemplo una operación definida por el grupo cíclico Gt se realiza x veces en O e Gt; O1 ■ O2 e Gt para O1, O2 e Gt significa que una operación definida por el grupo cíclico Gt se realiza en operandos O1 e Gt y O2 e Gt.
V: V representa un entero mayor o igual que 1.
9: 9 representa un entero mayor o igual que 0 y menor o igual que V (9 = 0, ..., V).
A: A representa un entero mayor o igual que 1 y menor o igual que V (A = 1, ..., V)
n(9): n(9) representa un entero predeterminado mayor o igual que 1.
Z(9): Z(9) representa un entero predeterminado mayor o igual que 0.
G1n(9)+Z<9). G1n(9)+Z(9) representa el producto directo de los n(9)+Z(9) grupos cíclicos G1.
G2n(9>+Z<9>: G2n(9)+Z(9) representa el producto directo de los n(9)+Z(9) grupos cíclicos G2.
g1, g2, gT: g1, g2, y gT representan los generadores de los grupos cíclicos G1, G2, y Gt, respectivamente.
V(9): V(9) representa un espacio de vectores de n(9)+Z(9) dimensiones abarcado por el producto directo de los n(9)+Z(9) grupos cíclicos G1.
V*(9): V*(9) representa un espacio de vectores de n(9)+Z(9) dimensiones abarcado por el producto directo de los n(9)+Z(9) grupos cíclicos G2.
e9: e9 representa un mapa bilineal no degenerativo que asigna el producto directo G1n(9)+Z(9) x G2n(9)+Z(9) de productos directos G1n(9)+Z(9) y G2n(9)+Z(9) al grupo cíclico Gt. El mapa bilineal e9 tiene como salida un elemento del grupo cíclico Gt en respuesta a la introducción de n(9)+Z(9) elementos Yp(P = 1, ..., n(9) + Z(9)) del grupo cíclico G1 y n(9)+Z(9) elementos Yp*(P = 1, ..., n(9) + Z(9)) del grupo cíclico G2.
El mapa bilineal e9 satisface las siguientes propiedades.
[Bilinealidad] para todos Y1 e Gn(9)+Z(9), r2 e G2n(9)+Z(9), y v, k e Fq, el mapa bilineal e9 satisface la siguiente relación:
e„(v • T,, k • r2) = e,(T,, r2)v K ...(2)
[No degeneración] El mapa bilineal e9 no es un mapa que asigna todos Y1 e G1n(9)+Z(9), r2 e G2n(9)+Z(9) al elemento de identidad del grupo cíclico Gt.
[Computabilidad] Hay un algoritmo que calcula eficientemente e9(Y1, r2) para todos de
Gj
n(9)+í(<P)
r,
Q n(9)+C(9)
(3)
En la presente realización, el mapa bilineal no degenerativo dado a continuación que asigna el producto directo G1 x G2 de los grupos cíclicos G1 y G2 al grupo cíclico GT se usa para construir el mapa bilineal e9.
El mapa bilineal e9 en esta realización tiene como salida un elemento de subgrupo Gt para entradas de un vector de n(9)+Z(9) dimensiones (Y1, ..., Yn(9)+?(9)) que consisten en n(9)+Z(9) elementos Yp (P = 1, ..., n(9) + Z(9)) del grupo cíclico
10
15
20
25
30
35
40
Gi y un vector de n(9)+Z(9) dimensiones (Yi*, ..., Yn(^)+z(^)*) que consiste en n(9)+Z(9) elementos Yp* (P = 1, ..., n(9) + Z(9)) del grupo cíclico G2.
e„: np„n<*«wPair(y|),y|1') ...(5)
El mapa bilineal Pareja tiene como salida un elemento del grupo cíclico Gt en respuesta a la introducción de una pareja de un elemento del grupo cíclico Gi y un elemento del grupo cíclico G2. El mapa bilineal Pareja satisface las siguientes propiedades.
[Bilinealidad] Para todos Qi e Gi, Q2 e G2, y v, k e Fq, el mapa bilineal Pareja satisface la siguiente relación:
Pair(v • Qb k • Q2) = PairCQi, Q2)v K ... (6)
[No degeneración] El mapa bilineal Pareja no es un mapa que asigna todos de
a un elemento de identidad del grupo cíclico Gt.
[Computabilidad] Hay un algoritmo que calcula eficientemente Pareja(Qi, Q2) para todos Qi e Gi, Q2 e G2.
Ejemplos específicos de mapa bilineal Pareja incluyen funciones para emparejar operaciones tales como emparejamiento Weil y emparejamiento Tate (véase la bibliografía de referencia 4 "Alfred J. Menezes, ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS, KLUWER ACADEMIC PUBLISHERS, ISBN 0-7923-9368-6, págs. 6i -8i, por ejemplo). Dependiendo del tipo de la curva elíptica E, el mapa bilineal Pareja puede ser una función de emparejamiento modificada e(Qi, phi(Q2)) (Qi e Gi, G2 e G2), que es una combinación de una función para realizar una operación de emparejamiento tal como emparejamiento Tate y una función dada phi (véase la bibliografía de referencia 2, por ejemplo). Ejemplos de algoritmos para realizar operaciones de emparejamiento en ordenador incluyen el muy conocido algoritmo de Miller (Bibliografía de referencia 5 "V S. Miller, "Short Programs for functions on Curves", i986, Internet
http://crypto.stanford.edu/miller/miller.pdf). También se conocen bien métodos para construir curvas elípticas y grupos cíclicos para operaciones de emparejamiento eficientes (véase la bibliografía de referencia 2, Bibliografía de referencia 6 "A. Miyaji, M. Nakabayashi, S. Takano, "New explicit condtions of elliptic curve Traces for FR-Reduction", IEICE Trans. Fundamentals, vol. E84-A, n.° 05, págs. i234 - i243, mayo de 200i", Bibliografía de referencia 7 "P. S. L. M. Barreto, B. Lynn, M. Scott, "Constructing elliptic curves with prescribed embeddingdegrees", Proc. SCN '2002, LNCS 2576, págs. 257 - 267, Springer-Verlag. 20O3", y Bibliografía de referencia 8 "R. Dupont, A. Enge, F. Morain, "Building curves with arbitrary small mOv degree over finite prime fields"
http://eprint.iacr.org/2002/094/", por ejemplo).
http://crypto.stanford.edu/miller/miller.pdf). También se conocen bien métodos para construir curvas elípticas y grupos cíclicos para operaciones de emparejamiento eficientes (véase la bibliografía de referencia 2, Bibliografía de referencia 6 "A. Miyaji, M. Nakabayashi, S. Takano, "New explicit condtions of elliptic curve Traces for FR-Reduction", IEICE Trans. Fundamentals, vol. E84-A, n.° 05, págs. i234 - i243, mayo de 200i", Bibliografía de referencia 7 "P. S. L. M. Barreto, B. Lynn, M. Scott, "Constructing elliptic curves with prescribed embeddingdegrees", Proc. SCN '2002, LNCS 2576, págs. 257 - 267, Springer-Verlag. 20O3", y Bibliografía de referencia 8 "R. Dupont, A. Enge, F. Morain, "Building curves with arbitrary small mOv degree over finite prime fields"
http://eprint.iacr.org/2002/094/", por ejemplo).
ai(9) (i = i, ..., n(9) + Z(9)): ai(9) representan vectores de base de n(9)+Z(9) dimensiones consistente cada uno en n(9)+Z(9) elementos del grupo cíclico Gi. Por ejemplo, los vectores de base a¡(9) son los vectores de base de n(9)+Z(9) dimensiones cuyos elementos dimensionales i-ésimos son Ki ■ gi e Gi y los otros n(9) + Z(9) - i elementos son los elementos de identidad (representados aditivamente como "0") del grupo cíclico G|. En este ejemplo, los elementos de los vectores de base de n(9)+Z(9) dimensionesai(9) (i = i, ..., n(9) + Z(9)) pueden ser enumerados de la siguiente manera:
ai(cp) = (kj ■ gb 0, 0,0) a2((p) = (0, Ki * gi, 0, 0) ...(8)
an(9)+a9)((p) = (0, o, 0,Ki • gi)
Aquí, Ki es una constante que consiste en elementos de un elemento finito Fq distinto a la identidad aditiva 0f. Un ejemplo específico de Ki e Fq es Ki = 1f. Los vectores de base ai(9) son bases ortogonales y todos vectores de
n(9)+Z(9) dimensiones que consisten en n(9) + Z(9) elementos del grupo cíclico Gi pueden ser representados por la suma lineal de vectores de base de n(9)+Z(9) dimensiones ai(9) (i = i, .., n(9) + Z(9)). Esto es, los vectores de base de n(9)+Z(9) dimensiones ai(9) abarcan el espacio de vectores V(9) descrito anteriormente.
a*(9) (i = i, ..., n(9) + Z(9)): a*(9) representa vectores de base de n(9)+Z(9) dimensiones consistente cada uno en n(9)+Z(9) elementos del grupo cíclico G2. Por ejemplo, los vectores de base a*(9) son los vectores de base de n(9)+Z(9) dimensiones cuyos elementos i-ésimos son K2 ■ g2 e G2 y los otros n(9) + Z(9) - i elementos son los elementos de identidad (representados aditivamente como "0") del grupo cíclico G2. En este ejemplo, los elementos de los vectores de base a*(9) (i = i, ..., n(9) + Z(9)) pueden ser enumerados de la siguiente manera:
5
10
15
20
25
ai*(q>) = (k2 • g2, 0, 0,0) a2*((p) = (0, k2 • g2, 0,0) ... (9)
an((pK(<P) (fp) = (0. 0,..., k2 • g2)
Aquí, K2 es una constante que consiste en elementos del campo finito Fq distinta a la identidad aditiva 0f. Un ejemplo específico de K2 e Fq es K2 = 1 f. Los vectores de base a*(9) son bases ortogonales y todos los vectores de n(9)+Z(9) dimensiones que consisten en n(9)+Z(9) elementos del grupo cíclico G2 pueden ser representados por la suma lineal de los vectores de base de n(9)+Z(9) dimensiones a*(9) (i = 1, .., n(9) + Z(9)). Esto es, los vectores de base de n(9)+Z(9) dimensiones a*(9) abarcan el espacio de vectores V*(9) descrito anteriormente.
Los vectores de base ai(9) y a*(9) satisfacen
eq,(ai(<p), aj*(cp)) = gTT'8(lj) ... (10)
para los elementos t = K1 ■ K2 del campo finito Fq distintos a 0f. Esto es, a partir de las Fórmulas (5) y (6), cuando i = j, los vectores de base satisfacen
e*p(ai(<p), aj*(q>)) = Pair(Ki ■ gu k2 • g2) • Pair(0, 0) • ... • Pair(0, 0)
= Pair(gl3 g2)Kl K2 • Pair(g], g2)°'° • ... ■ Pair(g,, g2)°'°
= Pair(gj, g2)Kl K2 = gT
donde los superíndices, k1, k2, representan K1 y K2, respectivamente. Por otro lado, cuando i t j, el lado derecho de e9(ai(9), aj*(9)) = ni=1n(9)+Z(9) Pareja(ai(9), aj*(9)) no incluye Pareja(Kl ■ g1, k2 ■ g2) pero es el producto de Pareja(Kl ■ g1, 0), Pareja(0, K2 ■ g2) y Pareja (0, 0). Además, a partir de la Fórmula (6), se satisface Pareja(gi, 0) = Pareja(0, g2) = Pareja(gi, g2)0. Por lo tanto, cuando i t j, se satisface la siguiente relación:
Especialmente cuando t = Ki ■ K2 = 1f (por ejemplo cuando Ki = K2 = 1f), se satisface la siguiente relación.
Aquí, gT0 = 1 es el elemento de identidad del grupo cíclico Gt y gTl = gT es el generador del grupo cíclico Gt. Los vectores de base ai(9) y a*(9) son bases ortogonales duales y los espacios de vectores V(9) y V*(9) son espacios de vectores de emparejamiento duales (DPVS) que pueden formar un mapa bilineal.
A(9): A(9) representa una matriz de n(9)+Z(9) filas por n(9)+Z(9) columnas que consiste en los vectores de base a(9) (i = 1, ..., n(9) + Z(9)). Por ejemplo, cuando los vectores de base a(9) (i = 1, ..., n(9)+Z(9)) son expresados por la Fórmula (8), la matriz A(9) es de la siguiente manera:
A*(9): A*(9) representa una matriz de n(9)+Z(9) filas por n(9)+Z(9) columnas que consiste en los vectores de base a*(9) (i = 1, ..., n(9) + Z(9)). Por ejemplo, cuando los vectores de base a*(9) (i = 1, ..., n(9) + Z(9)) son expresados por la Fórmula (9), la matriz A*(9) es de la siguiente manera:
5
10
15
A (y) =
- ( *, s. > ai (y)
- k2’§2 0 0 ^
- a2*(v)
- 0 V¿2 ' g2 i
- * i,an(9)+C(H/) (V)J
- : '-.0 v 0 •" 0 k2-S2>
(13)
X(9): X(9) representa una matriz de n(9)+Z(9) filas por n(9)+Z(9) columnas que consiste en los elementos del campo finito Fq. La matriz X(9) se usa para transformación de coordenadas de los vectores de base ai(9). Permitiendo que los elementos de i filas y j columnas (i = 1, ..., n(9) + Z(9), j = 1, ..., n(9) + Z(9)) de la matriz X(9) sean xi,j(9) £ Fq, entonces la matriz X(9) es:
Cada elemento Xi,j(9) de la matriz X(9) es referido en esta memoria como un coeficiente de transformada.
X*(9): La matriz X*(9) y la matriz X(9) satisfacen la relación X*(9) = t' ■ (X(9)-1)T. Aquí, t' £ Fq es una constante arbitraria que pertenece al campo finito Fq y, t' = 1f, por ejemplo. X*(9) se usa para transformación de coordenadas de los vectores de base a*(9). Permitiendo que los elementos de i filas y j columnas de matriz X*(9) sean x¡,j* £ Fq, entonces la matriz X*(9) es de la siguiente manera:
Cada elemento Xi,j*(9) de la matriz X*(9) es referido en esta memoria como un coeficiente de transformada.
Permitiendo que 1(9) sea la matriz unidad de n(9)+Z(9) filas y n(9)+Z(9) columnas, entonces se satisface X(9) ■ (X* (9))t = t' ■ 1(9). Esto es, la matriz unidad se define como:
Para la matriz unidad, se aplica la siguiente fórmula.
Aquí, se definen los siguientes vectores de n(9)+Z(9) dimensiones.
Xi^((p)= (Xi,l(<P)> Xi,n(9)+í(9)((P)) - (18)
Xr*(<P) = (Xj,i*(9X -> Xj,n(9)+C(9)*((P)) - (19)
5 a partir de la Fórmula (17), el producto interior de los vectores de n(9)+Z(9) dimensiones x¡^ (9) y xT*(9) es:
bi(9): bi(9) representan vectores de base de n(9)+Z(9) dimensiones consistente cada uno en n(9)+Z(9)elementos del grupo cíclico Gi. Aquí, b¡(9) se puede obtener por transformación de coordenadas de los vectores de base a (9) (i = 1, ..., n(9) + Z(9)) usando la matriz X(9). Específicamente, los vectores de base b(9) se pueden obtener calculando
10
bi(cp) = £j=1
n(9)+£(<P)
Xij(<P)-a¡(<P) - (21)
Por ejemplo, si los vectores de base aj(9) (j = 1, ..., n(9) + Z(9)) son expresados por la Fórmula (8), los elementos de los vectores de base ^(9) pueden ser enumerados como:
¥<P) = (Xi,l(<P) • K1 • gl» Xí,2((P) • K! • gi, Xi,n«p>tí(q»(<P) ‘ K1 ‘ gl) - (22)
Todos los vectores de n(9)+Z(9) dimensiones que consisten en n(9)+Z(9) elementos del grupo cíclico G1 pueden ser 15 representados por la suma lineal de los vectores de base de n(9)+Z(9) dimensiones b¡(9) (i= 1, ..., n(9)+Z(9)). Esto es, los vectores de base de n(9)+Z(9) dimensiones b¡(9) abarcan el espacio de vectores V(9) descrito anteriormente.
bi*(9): bi*(9) representan vectores de base de n(9)+Z(9) dimensiones consistente cada uno en n(9)+Z(9)elementos del grupo cíclico G2. Aquí, bi*(9) se puede obtener por transformación de coordenadas de los vectores de base a*(9) (i = 1, ..., n(9) + Z(9)) usando la matriz X*(9). Específicamente, los vectores de base b*(9) se pueden obtener calculando
bi*(<p) = Z¡-,nw+cw Xij*(«p)-a,*(tp) ••• (23)
Por ejemplo, cuando los vectores de base aj*(9) (j = 1, ..., n(9) + Z(9)) son expresados por la Fórmula (9), los elementos de los vectores de base b*(9) pueden ser enumerados como:
Todos los vectores de n(9)+Z(9) dimensiones que consisten en n(9)+Z(9) elementos del grupo cíclico G2 pueden ser representados por la suma lineal de los vectores de base de n(9)+Z(9) dimensiones bi*(9) (i= 1, ..., n(9) + Z(9)). Esto es, los vectores de base de n(9)+Z(9) dimensiones b¡*(9) abarcan el espacio de vectores V*(9) descrito anteriormente.
Los vectores de base bi(9) y b*(9) satisfacen la siguiente relación para todos elementos t = K1 ■ K2 del campo finito Fq 5 distinto a 0f.
®cp(b¡(cp), b¡*(<p)) = gT”'s(iJ> ...(25)
Esto es, a partir de las Fórmulas (5), (20), (22) y (24), se aplica la siguiente relación:
Especialmente cuando i = K1 ■ K2 = 1f (por ejemplo cuando K1 = K2 = 1f) y i’ = 1 f, se aplica la siguiente relación:
10 e^bifcp), b/(cp)) = gTs,iJ) ... (26)
Los vectores de base ^(9) y b*(9) son las bases ortogonales duales de espacios de vectores de emparejamiento duales (espacios de vectores V(9) y V*(9)).
Cabe señalar que se pueden usar los vectores de base ai(9) y a*(9) distintos a los mostrados en las Fórmulas (8) y (9) y los vectores de base bi(9) y b¡*(9) distintos a los mostrados en las Fórmulas (21) y (23), siempre que satisfagan 15 la relación en la Fórmula (25).
B(9): B(9) es una matriz de n(9)+Z(9) filas por n(9)+Z(9) columnas que consiste en los vectores de base b¡(9) (i = 1, .., n(9)+Z(9)).
20
B(9) satisface B(9) = X(9) ■ A(9). Por ejemplo, cuando los vectores de base b(9) son expresados por la Fórmula (22), la matriz B(9) es:
B*(9): B*(9) representa una matriz de n(9)+Z(9) filas por n(9)+Z(9) columnas que consiste en los vectores de base bi*(9) (i = 1, ..., n(9) + Z(9)). B*(9) satisface B*(9) = X*(9) ■ A*(9). Por ejemplo, cuando los vectores de base bj*(9) (i = 1, ..., n(9) + Z(9)) son expresados por la Fórmula (24), la matriz B*(9) es:
5
10
15
20
25
30
v(A)^: v(A)^ representan vectores de n(A) dimensiones consistente cada uno en los elementos del campo finito Fq.
v(Xf = (vi(A),v„wa)) s FqnW ... (29)
Vm(A): Vm(A) representan los elementos p-ésimos (p = 1, ..., n(A)) de los vectores de n(A) dimensiones v(A)^. w(A)^: w(A)^ representan vectores de n(A) dimensiones consistente cada uno en los elementos del campo finito Fq.
w(A,;T = (wi(X),wn(5L)(A,)) G FqnW ... (30)
Wm(A): Wm(A) representan los elementos p-ésimos (p = 1, ..., n(A)) de los vectores de n(A) dimensiones w(A)^.
Enc: Enc representa una función de encriptación de clave común que indica un proceso de encriptación de un esquema de encriptación de clave común.
Enck(M): Enck(M) representa un texto cifrado obtenido usando una clave común K para encriptar un texto plano M según la función de encriptación de clave común Enc.
Dec: Dec representa una función de desencriptación de clave común que indica un proceso de desencriptación del esquema de encriptación de clave común.
Deck(C): Deck(C) representa un resultado desencriptado obtenido usando una clave común K para desencriptar un texto cifrado C según la función de desencriptación de clave común Dec.
Función resistente a colisión: Una "función resistente a colisión" es una función h que satisface la siguiente condición para un parámetro de seguridad suficientemente grande sec, o una función que se puede considerar que es la función h.
Aquí, Pr [■] es la probabilidad del evento [■], A(h) es un algoritmo de tiempo polinomial probabilístico que calcula los valores x, y (x t y) que satisfacen h(x) = h(y) para la función h, £(sec) es un polinomio para el parámetro de seguridad sec. Un ejemplo de la función resistente a colisión es una función de troceo (hash) tal como "función de troceo criptográfica" descrita en la bibliografía de referencia 1.
Función aleatoria: Una "función aleatoria" es una función que pertenece a un subconjunto $z de un conjunto Oz o una función que se puede considerar que es una función que pertenece al subconjunto $z. Aquí, el conjunto Oz es un conjunto de todas las funciones que asignan los elementos de un conjunto {0, 1} a los elementos de un conjunto {0, 1}z. Ningún algoritmo de tiempo polinomial probabilístico puede distinguir entre el conjunto Oz y el subconjunto ifo. Ejemplos de funciones aleatorias incluyen funciones de troceo mencionadas anteriormente.
Función inyectiva: Una "función inyectiva" es una función que no asigna elementos distintivos de su dominio al mismo elemento de su rango, o una función que se puede considerar que es unafunción que no asigna elementos distintivos de su dominio al mismo elemento de su rango. Esto es, una "función inyectiva" es una función que asigna elementos de su dominio a los elementos de su rango a modo de uno a uno, o una función que se puede considerar que es una función que asigna elementos de su dominio a los elementos de su rango a modo de uno a uno. Ejemplos de funciones
5
10
15
20
25
30
35
40
45
50
55
inyectivas incluyen funciones de troceo tales como una "KDF (Key Derivation Function, Función de Derivación de Clave)" descrita en la bibliografía de referencia 1.
Hs (S = 1, ..., Smax): Hs representa una función resistente a colisión que tiene como salida un elemento del campo finito Fq en respuesta a la introducción de dos valores. Smax es una constante entera positiva. Un ejemplo de la función Hs es una función que incluye: una función resistente a colisión que tiene como salida un elemento del campo finito Fq en respuesta a la introducción de un elemento del grupo cíclico Gt y una secuencia binaria; y una función resistente a colisión que tiene como salida un elemento del campo finito Fq en respuesta a la introducción de dos secuencias binarias. Un ejemplo específico de la función Hs es una función que incluye: una función inyectiva que asigna dos valores de entrada a una secuencia binaria; funciones de troceo tales como la "función de troceo criptográfica" descritas en la bibliografía de referencia 1; y una función de transformada que asigna una secuencia binaria a un elemento de un campo finito (por ejemplo un "conversión cadena octeto y entero/campo finito" en la bibliografía de referencia 1). Ejemplos específicos de la función inyectiva que asigna dos valores de entrada a una secuencia binaria incluyen una función que asigna un elemento de entrada del grupo cíclico Gt a una secuencia binaria y tiene como salida el OR excluyente de la secuencia binaria y una secuencia binaria de entrada, o una función que tiene como salida el OR excluyente de dos secuencias binarias de entrada. En términos de seguridad, funciones Hs son preferiblemente funciones unidireccionales, más preferiblemente funciones aleatorias. Únicamente algunas de las funciones Hs pueden ser funciones unidireccionales o aleatorias. En términos de seguridad, sin embargo, preferiblemente todas las funciones Hs son funciones unidireccionales, más preferiblemente funciones aleatorias. En términos de seguridad, las funciones Hs (S = 1, ..., Smax) son preferiblemente funciones diferentes.
R: R representa una función inyectiva que tiene como salida una secuencia binaria en respuesta a un valor de entrada. Un ejemplo de la función inyectiva R es una función que tiene como salida una secuencia binaria en respuesta a la introducción de un elemento del grupo cíclico Gt, o una función que tiene como salida una secuencia binaria en respuesta a la introducción de una secuencia binaria. Un ejemplo específico de la función inyectiva R es una función que incluye: una función inyectiva que asigna un valor de entrada a una secuencia binaria; y una función de troceo tal como una "función de troceo criptográfica" descrita en la bibliografía de referencia 1. La función inyectiva R puede ser una función de troceo tal como la "función de troceo criptográfica" descrita en la bibliografía de referencia 1. La función de inyección R es preferiblemente una función unidireccional, más preferiblemente una función aleatoria, en términos de seguridad.
[Esquema de encriptación funcional]
A continuación se describirá una construcción básica de encriptación funcional.
Encriptación funcional es un esquema en el que se desencripta un texto cifrado cuando el valor de verdad de una fórmula lógica determinada por una combinación de primera información y segunda información es "verdadero". Una de la "primera información" y la "segunda información" se incrusta en el texto cifrado y la otra se incrusta en información de clave. Por ejemplo, el esquema de encriptación preparatorio descrito en "Predicate Encryption Supporting Disjunctions, Polinomial Equations, y Inner Products," con Amit Sahai y Brent Wasters One de 4 papers from Eurocrypt 2008 invited to the Journal of Cryptology" (Bibliografía de referencia 9) es un tipo de encriptación funcional.
Si bien hay otros esquemas de encriptación funcional muy conocidos, a continuación se describirá un nuevo esquema de encriptación funcional no publicado. En el nuevo esquema de encriptación funcional descrito más adelante, valores que dependen de información secreta son repartidos en secreto jerárquicamente en un modo que depende de una fórmula lógica dada. La fórmula lógica dada incluye variables proposicionales cuyos valores de verdad son determinados por una combinación de primera información y segunda información e incluyen además alguno o todos los símbolos lógicos A, v, y - según sea necesario. Si el valor de verdad de la fórmula lógica dada determinado por los valores de verdad de las variables proposicionales es verdadero, se recupera el valor que es dependiente de la información secreta y se desencripta un texto cifrado sobre la base del valor recuperado.
<Relación entre fórmula lógica y esquema de reparto de secreto jerárquico>
Se describirá la relación entre la fórmula lógica dada y el reparto de secreto jerárquico descrito anteriormente.
Reparto de secreto significa que información secreta se divide en N (N > 2) elementos de la información de reparto de tal manera que la información secreta se recupera únicamente cuando se obtiene al menos un número umbral Kt (Kt > 1) de elementos de la información de reparto. Un esquema de reparto de secreto (SSS) en el que se requiere que se satisfaga Kt = N se llama esquema de reparto N-de-N (o "esquema de reparto umbral N-de-N") y un esquema de reparto de secreto en el que se requiere que se satisfaga Kt < N se llama esquema de reparto Kt-de-N (o "esquema de reparto umbral Kt-de-N") (véase la bibliografía de referencia 10 'Kaoru Kurosawa, Wakaha Ogata "Basic Mathematics of Modern Encryption" (Electronics, information and communication lectures series)", Corona Publishing Co., marzo de 2004, págs. 116 - 119', y Bibliografía de referencia 11 'A. Shamir, "How to Share a Secret", Communications of the ACM, noviembre de 1979, Volumen 22, Número 11, págs. 612-613', por ejemplo).
En el esquema de reparto N-de-N, se puede recuperar información secreta SE cuando se dan todos los elementos de la información de reparto, reparto(1), ..., reparto(N), pero no se puede obtener información secreta SE cuando no se
10
15
20
25
30
35
da alguno de los N -1 elementos de la información de reparto, reparto($1), ..., reparto ($n-i). A continuación se da un ejemplo del esquema de reparto N-de-N.
- Seleccionar aleatoriamente SH1, ..., SHn-1.
- Calcular SHn = SE - (SH1 + ... + SHn-1).
- Establecer SH1, ..., SHn como los elementos de la información de reparto reparto(1), ..., reparto(N).
- Cuando se dan todos los elementos de la información de reparto, reparto(1), ..., reparto(N), la información secreta SE puede ser recuperada por la operación de recuperación dada más adelante.
SE = share(l) + ... + share (N) ... (31)
En el esquema de reparto Kt-de-N, se puede recuperar información secreta SE cuando se dan diferentes Kt elementos de la información de reparto, reparto^), ..., reparto($Kt), pero no se puede obtener información secreta SE cuando no se da alguno de los Kt - 1 elementos de la información de reparto, reparto^), ..., reparto($Kt-1). El subíndice Kt representa Kt. A continuación se da un ejemplo del esquema de reparto Kt-de-N.
- Seleccionar aleatoriamente un polinomio de Kt-1 dimensiones f(x) = £0 + £1 • x + £2 • x2 + ... + £km • xKt-1 que satisface f(0) = SE. Esto es, £0 = SE, y £1, ..., £Kt-1 son seleccionados aleatoriamente. La información de reparto se establece como reparto(p) = (p, f(p)) (p = 1, ..., N). p y f(p) pueden ser extraídos de (p, f(p)). Un ejemplo de (p, f(p)) es un valor de combinación de bits de p y f(p).
- Cuando se pueden obtener cualesquiera Kt elementos diferentes de la información de reparto reparto^), ..., reparto(^Kt) (($1, ..., $Kt) c (1, ..., N)), la información secreta SE puede ser recuperada usando una fórmula de interpolación de Lagrange, por ejemplo, mediante la siguiente operación de recuperación:
... (32) ... (33)
p
m .. 11
Aquí, • • • v • • • representa que el p-ésimo operando [elemento (<j)p - <j)p) del denominador y el elemento (x - <j)p) de la numerador)] desde la izquierda no existe. Esto es, el denominador de la Fórmula (33) se puede expresar como:
y el numerador de la Fórmula (33) se puede expresar como:
Los esquemas de reparto de secreto descritos anteriormente se pueden ejecutar en un campo. Además, estos esquemas se pueden extender para repartir un valor que es dependiente de información secreta SE hasta valores que son dependientes de información de reparto, repartos, por reparto de secreto. El valor que es dependiente de información secreta SE es la información secreta SE misma o un valor de función de la información secreta SE, y valores que son dependientes de la información de reparto, repartos, son los elementos de la información de reparto, repartos, mismos o valores de función de la información de reparto. Por ejemplo, un elemento gTSE e Gt que es dependiente de información secreta SE e Fq que es un elemento del campo finito Fq puede ser repartido en secreto hasta elementos g^3^1), gTreParto(2) e Gt del grupo cíclico Gt que es dependiente de información de reparto, reparto (1), reparto(2) por reparto de secreto. La información secreta SE descrita anteriormente es una combinación lineal de información de reparto, repartos (Fórmulas (31) y (32)). Un esquema de reparto de secreto en el que información secreta SE es combinación lineal de información de reparto, repartos, es llamado esquema de reparto de secreto lineal.
La fórmula lógica dada descrita anteriormente puede ser representada por datos en estructura de árbol que se pueden obtener por reparto de secreto jerárquico de la información secreta. Específicamente, según las leyes de De Morgan, la fórmula lógica dada puede ser representada por una fórmula lógica constituida por literales o una fórmula lógica compuesta de al menos algunos de la símbolos lógicos A, v y literales (dicha fórmula lógica será referida como la "fórmula lógica normal"). La fórmula lógica normal puede ser representada por datos en estructura de árbol que se pueden obtener por reparto de secreto jerárquico de la información secreta.
5
10
15
20
25
30
35
40
45
50
55
60
Los datos en estructura de árbol que representan la fórmula lógica normal incluyen una pluralidad de nodos. Al menos algunos de los nodos son nodos superiores de uno o más nodos subordinados, uno de los nodos superiores es el nodo raíz, y al menos algunos de los nodos subordinados son nodos hoja. No hay un nodo superior del nodo raíz y no hay nodo subordinado de un nodo hoja. El nodo raíz corresponde a un valor que es dependiente de información secreta y cada nodo subordinado de cada nodo superior corresponde a un valor que es dependiente de información de reparto obtenida por reparto de secreto del valor correspondiente al nodo superior. El modo de reparto de secreto (un esquema de reparto de secreto y un valor umbral) en cada nodo se determina según la fórmula lógica normal. Los nodos hoja corresponden a los literales que constituyen la fórmula lógica normal. El valor de verdad de cada uno de los literales es determinado por la combinación de la primera información y la segunda información.
Aquí se asume que un valor que es dependiente de información de reparto correspondiente a un nodo hoja correspondiente a un literal cuyo valor de verdad es verdadero puede ser obtenido mientras que un valor que es dependiente de información de reparto correspondiente a un nodo hoja correspondiente a un literal cuyo valor de verdad es falso no puede ser obtenido. Debido a la naturaleza del reparto de secreto descrito anteriormente, el valor que es dependiente de información de reparto correspondiente a un nodo superior (si el nodo superior es el nodo raíz, el valor que es dependiente de la información secreta) se recupera únicamente cuando el número de valores dependientes de información de reparto correspondiente a sus nodos subordinados obtenidos es mayor o igual que un valor umbral asociado con el nodo superior. Por consiguiente, si el valor que es dependiente de la información secreta correspondiente al nodo raíz puede ser recuperado o no es determinado en última instancia por qué literal del nodo hoja ha devuelto verdadero como su valor de verdad y por la configuración (que incluye el modo de reparto de secreto en cada nodo) de los datos en estructura de árbol. Los datos en estructura de árbol representan la fórmula lógica normal si los datos en estructura de árbol se configuran de tal manera que el valor dependiente de la información secreta correspondiente al nodo raíz puede ser en última instancia recuperado únicamente cuando los valores de verdad de los literales correspondientes a los nodos hoja permiten que la fórmula lógica normal devuelva verdadero como su valor de verdad. Dichos datos en estructura de árbol que representan una fórmula lógica normal pueden ser configurados fácilmente. Más adelante se dará un ejemplo específico.
La figura 1 ilustra datos en estructura de árbol que representan una fórmula lógica normal, PRO(1) A PRO(2) v - PRO(3), que contiene variables proposicionales PRO(1) y PRO(2), la negación - PRO(3) de una variable proposicional PRO(3), y símbolos lógicos A y v. Los datos en estructura de árbol ilustrados en la figura 1 incluyen una pluralidad de nodos N1, ..., N5. El nodo N1 se establece como el nodo superior de los nodos N2 y N5, el nodo N2 se establece como el nodo superior de los nodos N3 y N4, el un nodo N1 de los nodos superiores se establece como el nodo raíz, y los nodos subordinados N3, N4 y N5 entre los nodos subordinados se establecen como nodos hoja. El nodo N1 corresponde al valor que es dependiente de la información secreta SE; y los nodos subordinados N2 y N5 del nodo N1 corresponden a los valores correspondientes a los elementos de la información de reparto SE, SE, donde el valor correspondiente a la información secreta SE se divide, según un esquema de reparto 1-de-2, hasta los valores correspondientes a los elementos de la información de reparto SE, SE. Los nodos subordinados N3 y N4 del nodo N2 corresponden a los valores dependientes de los elementos de la información de reparto SE-SH1, SH1, donde el valor que es dependiente de la información de reparto SE se divide, según un esquema de reparto 2-de-2, hasta los valores dependientes de los elementos de la información de reparto SE-SH1, SH1. Esto es, el nodo hoja N3 corresponde al valor dependiente de información de reparto reparto(1) = SE-SH1, el nodo hoja N4 corresponde al valor dependiente de información de reparto reparto(2) = SH1, y el nodo hoja N5 corresponde al valor dependiente de información de reparto reparto(3) = SE. Los nodos hoja N3, N4 y N5 corresponden a los literales PRO(1), PRO(2) y -PRO(3), respectivamente, que constituyen la fórmula lógica normal PRO(1) A PRO(2) v -PRO(3). El valor de verdad de cada uno de los literales PRO(1), PRO(2) y -PRO(3) es determinado por la combinación de la primera información y la segunda información. Aquí, el valor dependiente de información de reparto correspondiente al nodo hoja cuyo literal ha devuelto verdadero puede ser obtenido pero el valor dependiente de información de reparto correspondiente al nodo hoja cuyo literal ha devuelto falso no puede ser obtenido. En este caso, el valor que es dependiente de la información secreta SE se recupera únicamente cuando la combinación de la primera información y la segunda información permite que la fórmula lógica normal PRO(1) A PRO(2) v -PRO(3) devuelva verdadero.
La figura 2 ilustra datos en estructura de árbol que representan una fórmula lógica normal, (PRO(1) A PRO(2)) v (PRO(2) A PRO(3)) v (PRO(1) A PRO(3)) v -PRO(4) v (-PRO(5) v PRO(6)) A PRO(7), que incluyen variables proposicionales pRo(1), PrO(2), PRO(3), PRO(6), y PrO(7), las negaciones -PRO(4) y -PRO(5) de variables proposicionales PRO(4) y PRO(5), y símbolos lógicos A y v.
Los datos en estructura de árbol ilustrados en la figura 2 incluyen una pluralidad de nodos N1,..., N11. El nodo1 se establece como el nodo superior de los nodos N2, N6 y N7, el nodo N2 se establece como el nodo superior de los nodos N3, N4 y N5, el nodo N7 se establece como el nodo superior de los nodos N8 y N11, el nodo N8 se establece como el nodo superior de los nodos Ng y N10, el nodo N1, que es uno de los nodos superiores, se establece como el nodo raíz, y los nodos N3, N4, N5, N6, Ng, N10 y N11 se establecen como nodos hoja. El nodo N1 corresponde al valor dependiente de la información secreta SE; y los nodos subordinados N2, N6 y N7 del nodo N1 corresponden a los valores dependientes de los elementos de la información de reparto SE, SE, Se, donde el valor dependiente de la información secreta SE se divide, según un esquema de reparto 1-de-3, hasta los valores dependientes de los elementos de la información de reparto SE, SE, SE. Los nodos subordinados N3, N4 y N5 del nodo N2 corresponden a los valores dependientes de los elementos de la información de reparto (1, f(1)), (2, f(2)), y (3, f(3)), respectivamente, donde el
5
10
15
20
25
30
35
40
45
50
valor correspondiente a la información de reparto SE se divide, según un esquema de reparto 2-de-3, hasta los valores dependientes de los elementos de la información de reparto (1, f(1)), (2, f(2)), y (3, f(3)). Los nodos subordinados N8 y N11 del nodo N7 corresponden a los valores dependientes de los elementos de la información de reparto SH4 y SE- SH4, respectivamente, donde el valor correspondiente a la información de reparto SE es repartido, según un esquema de reparto 2-de-2, hasta los valores dependientes de los elementos de la información de reparto SH4 y SE-SH4. Los nodos subordinados Ng y N10 del nodo N8 corresponden a los valores dependientes de los elementos de la información de reparto SH4, SH4, donde el valor dependiente de información de reparto SH4 se divide, según un esquema de reparto 1-de-2, hasta los valores dependientes de los elementos de la información de reparto SH4, SH4. Esto es, el nodo hoja N3 corresponde al valor dependiente de información de reparto reparto(1) = (1, f(1)), el nodo hoja N4 corresponde al valor dependiente de información de reparto reparto(2) = (2, f(2)), el nodo hoja N corresponde al valor dependiente de información de reparto reparto(3) = (3, f(3)), el nodo hoja N corresponde al valor dependiente de información de reparto reparto(4) = SE, el nodo hoja Ng corresponde al valor dependiente de información de reparto reparto(5) = SH4, el nodo hoja N10 corresponde al valor dependiente de información de reparto reparto(6) = SH4, y el nodo hoja N11 corresponde al valor dependiente de información de reparto reparto(7) = SE-SH4. Los nodos hoja N3, N4, N5, N6, Ng, N10 y N11 corresponden a los literales PRO(1), PRO(2), PRO(3), -PRO(4), -PRO(5), PRO(6), y PRO(7), respectivamente, que constituyen la fórmula lógica normal (PRO(1) A PRO(2)) v (PRO(2) A PRO(3)) v (PRO(1) A PRO(3)) v -PRO(4) A (PRO(5) vPRO(6)) A Pro(7). El valor de verdad de cada uno de los literales pRo(1), PRO(2), PRO(3), -PRO(4), -PRO(5), PRO(6), y PRO(7) se determina por la combinación de la primera información y la segunda información. Aquí, el valor que es dependiente de información de reparto que corresponde al nodo hoja cuyo literal ha devuelto verdadero puede ser obtenido pero el valor que es dependiente de información de reparto correspondiente al nodo hoja cuyo literal ha devuelto falso no puede ser obtenido. En este caso, el valor que es dependiente de la información secreta SE se recupera únicamente cuando la combinación de la primera información y la segunda información permite que la fórmula lógica normal (PRO(1) A PRO(2)) v (PRO(2) A PRO(3)) v (PRO(1) A PRO(3)) v -PRO(4) v (-PRO(5) v PRO(6)) A PRO(7) devuelva verdadero.
<Estructura de acceso>
Cuando una fórmula lógica dada es representada por datos en estructura de árbol que se pueden obtener por reparto de secreto jerárquico de la información secreta como se ha descrito anteriormente, se puede determinar si el valor de verdad de la fórmula lógica que es determinado por la combinación de la primera información y la segunda información será "verdadero" o "falso", sobre la base de si el valor dependiente de la información secreta puede ser recuperado a partir de los valores correspondientes a elementos de la información de reparto en los nodos hoja, cada uno de los cuales puede ser obtenido para la combinación de la primera información y la segunda información. Un mecanismo que acepta una combinación de primera información y segunda información cuando el valor de verdad de una fórmula lógica que es determinado por la combinación de la primera información y segunda información es "verdadero" y rechaza una combinación de primera información y segunda información cuando el valor de verdad es "falso" se llama en adelante en esta memoria la estructura de acceso.
El número total de los nodos hoja de datos en estructurade árbol que representa una fórmula lógica dada como se ha descrito anteriormente se denota mediante ^ e identificadores correspondientes a los nodos hoja se denotan mediante A = 1, ..., ^. Primera información es un conjunto {v(A)^}a=1,...y de vectores de n(A) dimensiones v(A)^ correspondientes a los nodos hoja y segunda información es un conjunto {w(A)^}a=1,...,y de vectores de n(A) dimensiones w(A)^. Los datos en estructura de árbol descritos anteriormente se implementan como una matriz etiquetada LMT(MT LAB).
La matriz etiquetada LMT(MT, LAB) incluye una matriz MT de ^ filas y COL columnas (COL >1) y las etiquetas LAB(A) asociadas con las filas A = 1, ..., ^ de la matriz MT.
Cada uno de los elementos mtA,col (col = 1, ..., COL) de la matriz MT satisface los siguientes dos requisitos. Primero, si un valor que es dependiente de información secreta SE e Fq corresponde al nodo raíz de los datos en estructura de árbol que representa una fórmula lógica dada como se ha descrito anteriormente, se aplica la siguiente relación entre un vector de COL dimensiones GV^ que consiste en elementos predeterminados del campo finito Fq y un vector de COL dimensiones CV^ que consiste en los elementos que son dependientes de la información secreta SE y pertenecen al campo finito Fq.
GV^ = (gv,,gVcoL) e FqCOL ... (35) CV" = (cv,........cvcol) e FqCOL ... (36)
5
10
15
20
25
30
35
40
45
SE = GV^ • (COT ...(37)
A continuación se da un ejemplo específico del vector de COL dimensiones GV^.
GV = (1f, •••, 1f)6F,
COL
... (38)
Obsérvese que GV^ puede ser otro vector de COL dimensiones tales como GV^ = (1f, 0f, ..., 0f) e FqCOL.
Segundo, si valores dependientes de información de reparto reparto(A) e Fq corresponden a nodos hoja correspondientes a identificadores A, se aplica la siguiente relación.
(share(l),..., shareCP))1 = MT • (CV^)T ... (39)
Una vez han sido determinados los datos en estructura de árbol que representan la fórmula lógica dada como se describe anteriormente, es fácil elegir una matriz MT que satisfaga los dos requisitos. Incluso si la información secreta SE y la información de reparto reparto(A) son variables, es fácil elegir una matriz MT que satisfaga los dos requisitos. Esto es, valores de la información secreta SE y la información de reparto reparto(A) pueden ser determinadas después de que se determina la matriz MT.
Las etiquetas LAB(A) asociadas con las filas A = 1, ..., ^ de la matriz MT corresponden a los literales (PRO(A) o -PRO(A)) correspondientes a los nodos hoja correspondientes a los identificadores A. Aquí, el valor de verdad "verdadero" de una variable proposicional PRO(A) se trata como que es equivalente al del producto interior de v(A^ ■ w(A)^ de v(A)^ incluido en la primera información VSET1 = {A, v(A)^|A = 1, ..., ^} y w(A)^ incluida en la segunda información VSET2 = {A, w(A)^|A = 1, ..., ^} es 0; el valor de verdad "falso" de la variable proposicional PRO(A) se trata como que es equivalente al del producto interior v(A)^ ■ w(A)^ no es 0. Se asume que la etiqueta LAB(A) correspondiente a PRO(A) representa v(A)^ y la etiqueta LAB(A) correspondiente a -PRO(A) representa -v(A)^. Aquí, -v(A)^ es una fórmula lógica que representa la negación de v(A)^ y v(A)^ puede ser determinada a partir de -v(A)A "lAb(A) = v(A)^" denota que LAB(A) representa v(A)^ y "LAB(A) = -v(A)^" denota que LAB(A) representa -v(A)^. lAb denota un conjunto {LAB(A)}a=1,...,y de LAB(A)'s (A = 1, ..., ^).
Un Vector de ^ dimensiones TFV^ se define como:
TFV = (tfv(l),..., tfvOF)) - (40)
Cada elemento tfv(A) es tfv(A) = 1 cuando el producto interior v(A)A w(A)^ es 0, y tfv(A) = 0 cuando el producto interior v(A)^ ■ w(A)^ no es cero.
tfv(A.) = 1 (PRO(A,) is true) if v(Á,)^ • w(A.)^ = 0 ... (41)
tfV(A,) = 0 (PRO(A.) is false) if v(A,)^ • ^ 0 ... (42)
Además, cuando el valor de verdad de la siguiente fórmula lógica es "verdadero", se denota mediante LIT(A) = 1; cuando es "falso", se denota mediante LIT(A) = 0.
{(LAB(A,)=v(A.) ) a (tfV(A,)=l)} v {(LAB(A,)=^v(A,r) a (tfv(X)=0)} ... (43)
Esto es, cuando el valor de verdad del literal correspondiente al nodo hoja correspondiente a un identificador A es "verdadero", se denota mediante LIT(A) = 1; cuando es "falso", se denota mediante LIT(A) =0. Entonces, unasubmatriz MTtfv constituida únicamente por vectores de filas mlA^ = (mtA, 1, ..., mtA, col) que producen LIT(A) = 1 entre los vectores en la matriz MT puede ser escrita como
MTtfv — (MT)lit(L)=i
(44)
En el caso en el que el esquema de reparto de secreto descrito anteriormente sea un esquema de reparto de secreto lineal, si el valor dependiente de la información secreta SE puede ser recuperado de valores dependientes de información de reparto reparto(A) correspondiente a identificadores A, entonces es equivalente a que el vector de COL dimensiones GV^ pertenece al espacio de vectores abarcado por los vectores de filas mt¡^ correspondientes a los identificadores A. Esto es, se puede determinar si el valor dependiente de la información secreta SE puede ser recuperado o no de valores dependientes de información de reparto reparto(A) correspondiente a los identificadores A determinando si el vector de COL dimensiones GV^ pertenece o no al espacio de vectores abarcado por los vectores de filas mt significa el espacio de vectores que pueden ser representados por una combinación lineal de los vectores de filas mtA^ correspondiente a los identificadores A. Un espacio de vectores abarcado por vectores de filas mt¡^. a^
5
10
15
20
25
30
35
40
Aquí se asume que si el vector de COL dimensiones GV^ pertenece al espacio de vectores "subespacio<MTrFv>" que es abarcado por vectores de filas mt^ de la submatriz MTtfv descrita anteriormente, se acepta la combinación de la primera información y la segunda información; de otro modo se rechaza la combinación de la primera información y la segunda información. Este plasma la estructura de acceso descrita anteriormente. Aquí, en el caso donde la matriz etiquetada LMT(MT, LAB) corresponde a la primera información como se ha descrito anteriormente, "la estructura de acceso acepta la segunda información" se refiere a que la estructura de acceso acepta la combinación de la primera información y la segunda información; "la estructura de acceso rechaza la segunda información" se refiere a que la estructura de acceso no acepta la combinación de la primera información y la segunda información.
Aceptar si GV^- e subespacio<MTTFV>
Rechazar si -(GV^ e subespacio<MTrFv>)
Cuando GV^ e subespacio<MTrV>, hay coeficientes const(p) que satisfacen las condiciones dadas más adelante y dichos coeficientes const(p) pueden encontrarse en tiempo polinomial del orden del tamaño de la matriz MT.
SE = X^gSET const(|u)-share(|Li) ... (45)
{const(jii) e Fq|n e SET), SET c {1,..., A|LIT(A) =1}
<Esquema de encriptación funcional básico que usa estructura de acceso>
A continuación se describirá un ejemplo de un esquema básico de un mecanismo de encapsulación de clave (KEM) construido por encriptación funcional usando la estructura de acceso. El esquema básico implica Configuración(1sec, (V; n(1), ..., n(V))), GenerarClave(PK, MSK, LMT(MT, LAB)), Enc(PK, M, {A, v(A)^|A = 1, ..., V}) (vi(A) = 1f), y Dec(PK, SKS, C). El primer elemento wi(A) de la segunda información VSET2 = {A, w(A)^|A = 1, ..., V} es 1f.
[Configuración(1sec, (V; n(1), ..., n(V))): Configuración]
- Entrada: 1sec, (V; n(1), ..., n(V))
- Salida: Información de clave maestra MSK, parámetros públicos PK En Configuración, se realiza el siguiente proceso para cada 9 = 0, ... V.
(Configuración-1) El orden q, la curva elíptica E, los grupos cíclicos Gi, G2, Gt, y el mapa bilineal 6p (9 = 0, ..., V) para el parámetro de seguridad sec son generados usando la entrada isec (param = (q, E, Gi, G2, Gt, 69)).
(Configuración 2) se elige t' e Fq y se eligen las matrices X(9) y X*(9) que satisfacen X*(9) = t' ■ (X((9)-1)T.
(Configuración-3) Los vectores de base ai((9) (i = 1, ..., n(9) + Z(9)) son transformados en coordenadas según la Fórmula (21) para generar los vectores de base de n(9) + Z(9) dimensiones b¡(9) (i = 1, ..., n(9) + Z(9)). Se genera la matriz B(9) de n(9) + Z(9) filas por n(9) + Z(9) columnas que consiste en los vectores de base b(9) (i = 1, ..., n(9) + Z(9)).
(Configuración-4) Los vectores de base a*(9) (i = 1, ..., n(9) + Z(9)) son transformados en coordenadas según la Fórmula (23) para generar los vectores de base de n(9) + Z(9) dimensiones b¡*(9) (i = 1, ..., n(9) + Z(9)). Se genera la matriz B*(9) de n(9) + Z(9) filas por n(9) + Z(9) columnas que consiste en los vectores de base b*(9) (i = 1, ..., n(9) + Z(9)).
(Configuración-5) Se establece un conjunto {B*(9)a}9=0,...,y de B*(9)A como información de clave maestra MSK = {B*(9)A}9=0,...,9. Se establece un conjunto {B(9)a}9=0,...,v de B(9)A, 1s6c, y param como parámetros públicos PK. Aquí, B*(9)a es la matriz B*(9) o su submatriz y B(9)A es la matriz B(9) o su submatriz. El conjunto {B*(9)a}9=0,...,y incluye al menos b1*(0), b1*(A), ..., bn(A)*(A)(A = 1, ..., V). El conjunto {B(9)a}9=0,...,v incluye al menos b1(0), b1 (A), ..., bn(A)(A)(A = 1, ..., V). A continuación se da un ejemplo.
n(0) + C(0) > 5, C(A) = 3 • n(A)
B(0)A = (bí(0) b3(0) b5(0))T
B(A) = (b 1 (X,) bn(X)(A,) b3.n(^)+i(A.) b4.n(¡g(A))T (A = 1,..., T7)
B (0) = (b i(0) b3 (0) b4 (0))1
B (X) - (bi (A.) ••• bn(x,) (X) b2.n(A)+i (A) b3.n(^ (A))T (A - 1,..., ¥)
5
10
15
20
25
[GenerarClave(PK, MSK, LMT(MT, LAB)): generación de información de clave]
- Entrada: Parámetros públicos PK, información de clave maestra MSK, una matriz etiquetada LMT(MT, LAB) correspondiente a primera información VSET1 = {A, v(A)^|A = 1, ...,^}
- Salida: SKS de información de clave
(GenerarClave-1) Se realiza la siguiente operación para la información secreta SE que satisface las fórmulas (35) a (39).
donde I es una constante mayor o igual que 2 y menor o igual que n(0) + Z(0); y coefi(0) e Fq es una constante o un número aleatorio. El término "número aleatorio" significa un número aleatorio verdadero o a pseudo número aleatorio. A continuación se da un ejemplo de D*(0). Aquí, coef4(0) en la Fórmula (47) es un número aleatorio .
(GenerarClave-2) Se realiza la siguiente operación para cada reparto(A) (A = 1, ..., ^) que satisface las Fórmulas (35) a (39).
Para A que satisface LAB(A) = v(A)^, se genera D*(A) dado más adelante.
D (X) = (share(X) + coef(A) • vi(A,)) • bi (X)
+ Sl,2nW coef(X)-v,(X)-bl*(X)
+ S,.nW+l coefl(X)-bl*(X) ... (48)
Para A que satisface LAB(A) = -v(A)^, se genera D*(A) dado más adelante.
D‘(X) = share(X) ■ "w v/Xj^b.'CÁ)
+ 2,-nW +inW+ím coef,(X)-b*(X) - (49)
Aquí, coef(A) y coefi(A) e Fq son constantes o números aleatorios. A continuación se da un ejemplo.
Para A que satisface LAB(A) = v(A)^, se genera el siguiente D*(A), por ejemplo:
D'fX) = (share(X) + coefp.) • v,(X)) • b,*(X)
+ E1=2”w coefW-v.wVW
+ S„2,w+13nW coef,(X)-bl*(X) ... (50)
Para A que satisface LAB(A) = -v(A)^, se genera el siguiente D*(A), por ejemplo:
D*(X) = share(A-) • Ll=1 nW v^-b^A)
^i=2-n(A)+l coef;(A,>bv*(A,) ... (51)
Aquí, coef(A) y coefi(A) en las Fórmulas (50) y (51) son números aleatorios.
(GenerarClave-3) Se genera la siguiente información de clave.
SKS = (LMT(MT, LAB), D*(0), D*(l),..., DQ¥)) ... (52)
[Enc(PK, M, VSET2: Encriptación)]
- Entrada: Parámetros públicos PK, texto plano M, segunda información VSET2 = {A, w(A)^|A=1, ...,^} (w-i(A) = 1f)
5
10
15
20
25
30
35
- Salida: Texto cifrado C
(Enc-1) El texto cifrado C(9) (9 = 0, ..., V) de la clave común K es generado por las siguientes operaciones.
C(0) = o • b,(0) + Erf1 u^oywo) ... (53)
C(X) = o • "w w,(X)-b,(X) + E„w+,n<l,+íw ü,(X)-b,W ... (54)
Aquí, u, Ui(9) e Fq (9 = 0, ...,V) son constantes o números aleatorios y se aplican las siguientes relaciones.
(coef2(0),coefi(0)) • (u2(0),Ui(0)) = u' ... (55) coeft(A,) • ut(?b) = 0F (i = n(A,) + 1,..., n(A,) + £|(A.)) ••• (56)
Un ejemplo de u' es cualquiera de U2(0), ..., ui(0). Por ejemplo, u, U3(0), us(0), U3n(A)+1(A), ..., U4n(A)(A) son números aleatorios, Z(A) = 3 • n(A), I = 5, y se aplican las siguientes relaciones.
(^2(0),ui(0)) = (0f, 1)3(0), 0F, u5(0))
u' = u3(0)
(Un(A)+l(^)> •••5 ^3-n(A)(^)) = (0f, •••, Op).
(Enc-2) Se genera la siguiente clave común.
K = gT’"eGT ...(57)
Por ejemplo, cuando t = t’ = 1f, se aplica la siguiente relación.
K — gxu ^ Gt
... (58).
(Enc-3) La clave común K se usa para generar el texto cifrado C(V + 1) del texto plano M.
C(VF + 1) — EncK(M)
(59)
El esquema de encriptación de clave común Enc puede ser un esquema de encriptación que se construye de modo que se puede lograr encriptación usando la clave común K, tal como Camellia (marca comercial registrada), AES, o el OR excluyente de la clave común y el texto plano. En otro ejemplo simple, Enci<(M) puede ser generado como:
CQ¥ + 1) = gTu' • M ...(60)
En el ejemplo en la Fórmula (60), M e Gt.
(Enc-4) Se genera el siguiente texto cifrado.
C = (VSET2, C(0), {C(^)}(,)W(^)eVsET2, C(T + 1)) ... (61)
Aquí, el subíndice "w(A)^-" representa "w(A)^".
[Dec(PK, SKS, C): Desencriptación)]
- Entrada: Parámetros públicos PK, información de clave SKS, texto cifrado C
- Salida: Texto plano M’
(Dec-1) Para A = 1, ..., V, se hace la determinación de si el producto interior v(A)^ • w(A)^ del vector de n(A) dimensiones v(A)^ que es cada etiqueta LAB(A) de la matriz etiquetada LMT(MT, LAB) incluida en la información de clave SKS y el vector de n(A) dimensiones w(A)^ incluido en VSET2 del texto cifrado C es o no 0 y entonces, a partir de la determinación y cada etiqueta LAB(A) de LMT(MT, LAB), se hace la determinación de si Gv^ e subespacio<MTTFv> (Fórmulas (40) a (45)). Si no se cumple GV^ e subespacio<MTrv>, el texto cifrado C es rechazado; si GV^ e subespacio<MTTFv>, el texto cifrado C es aceptado.
(Dec-2) Cuando el texto cifrado C es aceptado, se calcula SET c {1, ..., A|LIT(A) = 1} y los coeficientes const(p) (m e SET) que satisfacen la fórmula (45).
(Dec-3) Se genera la siguiente clave común.
K = e0(C(0),D*(0)) ■ nS(C«.D‘M)-W
H£SETaLAB(h)=v(h)^ l^eSET aLAB(^í)=-iv(h)_>
Aquí, a partir de las Fórmulas (6), (25) y (55), se aplica la siguiente relación.
00“*)
(62)
... (63)
A partir de las Fórmulas (6), (25), (41), (48), (54), (56) y w-i(A) = 1f, se aplica la siguiente relación.
ne^CGO.D'O!))»-00
(aeSET aLAB(jj,)=v((í)^ fj.eSET aLAB(jx)=v(|í)_>
share(n) ■ b,*(|x) + coef (M) ■ v,(n) • b,*(ri)
+ S^fcoef.ín) ■ b.V))"—^
n
HgSETALAB(n)=v(ti)_
(ü' ZÜ=TJ wt 0a)'bi share(|4> ■ b, * (p))
‘ en ' EÍJ1,1 w> (M) • bi 00, SfcorfOO ■ v, (¿i) ■ bt*(|4))
II |gTt'T''u'share^) • J^JnO0 gT-,-oef(,).wl(n)-vt(n) jponst(E) (ieSET aLAB(^)=v(|í)^
|jeSET aLAB(^)=v([í)_>
const(|i)
5
5
A partir de las Fórmulas (6), (25), (42), (49), (54) y (56), se aplica la siguiente relación.
n (C(n), D* (n))«n*M/<vC)-*-w(i»r*)
fieSETALAB(fx)=-iv(|i)^'
= n w t (m-) • bt cm-)+xri
jj. e SET a L AB (/i)=■-i v ( ^y
n(|i)+í(p.)
n(n)+l
ui(M-)‘bv(ji),
share(p.) • vL (^i) • bt* (\i) + coefi O1)' bi* M)constí,i)/(v0i)”>'wífir*'
(n)+i
n
fteSET a LAB{(i )=-.v (n)~
íl-rn(E) L , *>-sharc((A).w tOO-v,^)] oonSt^^)“>-w^)
ni=l enlbi(^)»bi (b)j |
n ^n(^)gTT-T,-u-share(^)-w‘(^)'v^(^)jconst(H)/(v(^)^'wíM)^)
(.leSET aLAB((.i)=-iv((.i)^
n ist
(í€SETaLAB(|J.)=-iv(íí)"
t-T'-ü-share(ji)-v(jj)^-w(fJ.)
const(íi)/(v(n)^
: FUt
|ísSETaLAB(h)=-iv(h)
T'-t''Ugonst(p.)'share(|i)
(65)
A partir de las Fórmulas (45) y (63) a (65), se aplica la siguiente relación.
_ tt'-(-SEu+u') i-!- Tt'oconst((j,)share(^)
JV - gT ' ± |gx
HeSETALAB(ji)=v(n)“> j-jg TT''U-const(fi)-share(|i)
(xeSET aLAB(jj.)=-í1v((j.)^
T-T'-(-SE'ü-f-U') T-t'ü-SE TT'-u' {£LC\
= gT *gT =gT —(66)
Por ejemplo, cuando t = t' = 1f, se aplica la siguiente relación.
K = gT e Gt ...(67)
(Dec-4) Se usa la clave común K para generar el texto plano M' de la siguiente manera:
M' = DecK(CCF + 1)) = DecK(CCF +1) ... (68)
Por ejemplo, en el caso del esquema de encriptación de clave común ilustrado en la Fórmula (60), se genera el siguiente texto plano M':
M'-C(XF+ 1)/K ... (69)
Aquí, gX, gX', gX'X en lugar de gT, pueden ser tratados como el generador de Gt. Además, se puede usar un mapa que determina correspondencia entre A de información de clave SKS y A de un texto cifrado puede ser usado para determinar una combinación de C(A) y D*(A) para realizar el proceso de [Dec(PK, SKS, C): Desencriptación]. 1f puede
5
10
15
20
25
30
35
40
45
ser el elemento n(A)-ésimo vn(A)(A) de la primera información VSET1 = {A, v(A)^|A=1, .., ^}, así como el primer elemento w-i(A) de la segunda información VSET2 = {A, w(A)^|A, ..., ^}. Si el elemento wi(A) no es 1f, se puede usar w(A)^/w-i(A) en lugar de w(A)^; si el elemento Vn(A) (A) no es 1f, se puede usar v(A)^/Vn(A}(A) en lugar de v(A)^. Se puede usar la segunda información VSET2 = {A, w(A)^|A = i, ..., ^} en lugar de la primera información VSET1 = {A, v(A)^ A = i, ..., ^} y se puede usar la primera información VSET1 = {A, v(A)^| A = i, ..., ^) en lugar de la segunda información VSET2 = {A, w(A)^|A = i, ..., ^}. En ese caso, el primer elemento vi(A) de la primera información VSET1 = {A, v(A)^|A = i, ..., ^} es 1f.
[Seguridad contra CCA]
Si se satisface la Fórmula (70) cuando se ejecutan [i] a [4] dados más adelante, el siguiente esquema de encriptación que usa oráculos de encriptación y desencriptación es seguro contra CCA.
Pr [bit = bit'] < (1/2) - FNK(sec) ... (70)
donde FNK(sec) es una función de sec que satisface 0 < FNK(sec) < 1/2. En ese caso, cuando [3] se realiza después de [2], se dice que es "seguro contra CCA2"; cuando [2] se realiza después de [3], se dice que es "seguro contra CCA1". "CCA2" es un ataque más fuerte que "CCA1".
[1] Se dan parámetros públicos PK a un atacante.
[2] El atacante proporciona textos planos Mo y Mi, que son dos secuencias de bits, a un oráculo de encriptación que tiene los parámetros públicos PK. El oráculo de encriptación elige aleatoriamente bit e {0, i}, encripta uno de los textos planos, Mbit, y proporciona el texto cifrado Cbit al atacante.
[3] El atacante proporciona un texto cifrado Cbit' (Cbit' £ Cbit) a un oráculo de desencriptación que tiene información de clave SKS y puede recibir el resultado de la desencriptación del texto cifrado Cbit' del oráculo de desencriptación.
[4] El atacante tiene como salida bit' e {0, i}.
[Seguridad contra CCA de esquema básico de esquema de encriptación funcional usando estructura de acceso]
El esquema básico de la encriptación funcional usando la estructura de acceso no es seguro contra CCA. Esto se describirá con un ejemplo simple. En este ejemplo simple, el texto plano M es una secuencia binaria. El texto cifrado C(^i + i) = EncK(M) (Fórmula (59)) del texto plano M es generado por encriptación de clave común usando la clave común K según la siguiente fórmula:
COF + 1) = MAP(K) (+) M ... (71)
Un texto (Fórmula (68)) desencriptado del texto cifrado C(^ + i) usando la clave común K es generado según la siguiente fórmula:
M' = COF +1) (+) MAP(K) ... (72)
donde MAP(K) representa un mapa de K e Gt a una secuencia binaria. En este caso, un atacante puede adoptar la siguiente estrategia (en adelante en este documento referida como la "estrategia asumida").
[1] Los parámetros públicos PK se dan al atacante.
[2] El atacante proporciona la segunda información VSET2 = {A, w(A)^|A = i, ..., ^} y dos textos planos M0 y Mi a un oráculo de encriptación que tiene los parámetros públicos PK. El oráculo de encriptación elige aleatoriamente bit e {0, i}, encripta uno del textos planos, Mbit, usando la clave común K (Fórmula (57)) para generar el siguiente texto cifrado Cb¡t(^ + i):
CbitCí' + 1) = MAP(K) (+) Mbit ... (73)
El oráculo de encriptación genera además los textos cifrados C(0), C(A)(A = i, ..., ^) (Fórmulas (53) y (54)) y proporciona los siguientes textos cifrados para el atacante.
Cbit = (VSET2, C(0), {C(X)}(XMX)^eVSET2, QaCF + 1)) ... (74)
[3] El atacante proporciona el siguiente texto cifrado Cbit' a un oráculo de desencriptación que tiene la información de clave SKS (Fórmula (52)) y recibe el resultado de la desencriptación del texto cifrado Cbit' del oráculo de desencriptación:
Cbit' = (VSET2, C(0), (CMW^vsetz, Cbit(T + 1) (+) AM) ... (75)
donde AM es una secuencia binaria que tiene un valor conocido por el atacante.
Aquí, si bit = 0, entonces Cb¡t(^ +1) = MAP(K) (+) Mo y el resultado de la desencriptación de Cb¡t(^ + 1) (+) AM será Mo (+) AM.
Por otro lado, si bit = 1, Cbit(^ + 1) = MAP(K) (+) Mi y el resultado de la desencriptación de Cbit(^ + 1) (+) AM será Mo 5 (+) AM.
[4] El atacante tiene como salida bit' = 0 cuando el resultado de la desencriptación de Cbit' es Mo (+) AM. Cuando el resultado de la desencriptación es M1 (+) AM, el atacante tiene como salida bit' = 1.
En este caso, Pr [bit = bit'] = 1, que no satisface la fórmula (70).
[Esquema de encriptación funcional usando estructura de acceso de la presente realización]
10 Como se ha descrito anteriormente, el esquema básico de la encriptación funcional usando la estructura de acceso no es seguro contra CCA. Por otro lado, si se aplica el esquema de trasformación CHK o el esquema de trasformación BK al esquema básico de la encriptación funcional usando la estructura de acceso a fin de mejorar la seguridad contra CCA, se requiere un espacio de texto cifrado bidimensional adicional únicamente para la seguridad contra CCA. Según la presente realización, se mejora la seguridad contra CCA sin un espacio de texto cifrado adicional para la seguridad 15 contra CCA.
[Esquema de encriptación funcional mejorado]
Lo siguiente es un resumen de un esquema de encriptación funcional mejorado según la presente realización. [Proceso de encriptación]
Un dispositivo de encriptación para encriptación ejecuta el siguiente proceso.
20 (Enc-11) Una unidad generadora de número aleatorio genera un número aleatorio r.
(Enc-12) Una primera unidad de encriptación genera un texto cifrado C2 que es el OR excluyente de una secuencia binaria que depende del número aleatorio r y una secuencia binaria que es un texto plano M. El número aleatorio r es información secreta y el que no sabe el número aleatorio r no puede recuperar el texto plano M del texto cifrado C2.
(Enc-13) Una unidad de cálculo de función introduce la pareja del número aleatorio r y el texto cifrado C2 en cada una 25 de Smax (Smax ^ 1) funciones resistentes a colisión Hs (S = 1, ..., Smax) para generar Smax (Smax ^ 1) valores de función
Hs(r, C2) (S = 1, ..., Smax).
(Enc-14) Una unidad generadora de clave común genera la clave común K que satisface la siguiente relación para el generador gT del grupo cíclico Gt y las constantes t y t'.
K = gTT
Gi
(76)
30 (Enc-15) Una segunda unidad de encriptación encripta el número aleatorio r mediante el esquema de encriptación de
clave común usando la clave común K para generar un texto cifrado C(^ + 1).
35
(Enc-16) Una tercera unidad de encriptación genera un texto cifrado C que incluye C(0), C(A)(A = 1, ..., ^), y C(^ + 1) dados más adelante.
C(0) = o • b, (0) + 1 u.COyb.CO) ... (77)
C(X) = u • "(l) w,(X>b,W + n(l«(l) u.ayb.O.) ... (78)
COF + 1)
Se satisfacen las fórmulas (55) y (56) y al menos algunos de los valores de u, U|(0) (t = 2, ..., I), u,(A) (1 = n(A) + 1, ..., n(A) + Z(A)) corresponden a al menos algunos de los valores de función Hs(r, C2) (S = 1, ..., Smax). En otras palabras, al menos algunos de los valores de u, u(0) (1 = 2, ..., I), Ui(A)(i = n(A) + 1, ..., n(A) + Z(A)) son determinados por al menos algunos de los valores de función Hs(r, C2) (S = 1, ..., Smax). Por ejemplo, al menos algunos de u, u(0) (1 = 2, ..., I), U|(A) 40 (1 = n(A) + 1, ..., n(A) + Z(A)) son al menos algunos de los valores de función Hs(r, C2) (S = 1, ..., Smax) o valores de
función de al menos algunos de los valores de función de Hs(r, C2) (S = 1, ..., Smax). Valores u, U|(0) (t = 2, ..., I), Ui(A)(i = n(A) + 1, ..., n(A) + Z(A)) que no corresponden a ninguno de los valores de función Hs(r, C2) (S =1, ..., Smax) son establecidos a constantes o números aleatorios.
5
10
15
20
25
30
[Proceso de desencriptación]
Un dispositivo de desencriptación para desencriptación ejecuta el siguiente proceso.
(DEC-11) Si hay coeficientes const(p) que satisfacen la fórmula (45), una unidad generadora de clave común genera primera información de clave D*(0), segunda información de clave D*(A)(A = 1, ..., V) y una clave común K' dados más adelante. La primera información de clave se puede expresar por
Segunda información de clave D*(A) para A que satisface LAB(A) = v(A)^ se puede expresar por
D*(A,) = (share(A,) + coef(X) • vi(X)) • bi*(X)
+ 2,-2nm coefW-vA)V(A)
+ £,=„w „ n<l«w coef,(A.) blU) ... (80)
Segunda información de clave D*(A) para A que satisface LAB(A) = -v(A)^ se puede expresar por
D‘(A) - share(X) • 2,=in<X) \\('Xyb*(},)
+ 2raW+1 -amí) coef,(X)-b*(X) - (81)
La unidad generadora de clave común usa textos cifrados introducidos C'(0) y C'(A)(A = 1, ..., V) para generar la clave común K' según la siguiente fórmula:
(DEC-12) Una primera unidad de desencriptación usa la clave común K' para desencriptar texto cifrado introducido C'(V + i), generando de ese modo un valor desencriptado r'.
(DEC-13) Una unidad de cálculo de función introduce la pareja de valor desencriptado r' y texto cifrado introducido C2' en cada una de la Smax (Smax ^ 1) funciones resistentes a colisión Hs (S = 1, ..., Smax) para generar los Smax (Smax ^ 1) valores de función Hs(r', C2') (S = 1, ..., Smax).
(DEC-14) Si los textos cifrados C'(0) y C'(A) no coinciden con textos cifrados C"(0) = u" ■ bn(0) + Xt=2 I u"(0)bi(0) y C"(A) = u" ■ £=1 n(A) wi(A) bi(A) + Xi=n(A)+1 n(A)+Z(A) Ui"(A) bi(A), una unidad de determinación rehúsa la desencriptación. Por otro lado, los textos cifrados C'(0) y C'(A) coinciden con los textos cifrados C"(0) y C"(A), una segunda unidad de desencriptación genera un valor desencriptado M' que es el OR excluyente de una secuencia binaria que depende del valor desencriptado r' y el texto cifrado C2' que es la secuencia binaria de entrada.
Al menos algunos de los valores de u", u"(0) (t = 2, ..., I), u"(A) (t = n(A) + 1, ..., n(A) + Z(A)) corresponden a al menos algunos de los valores de función HS(r', C2') (S = 1, ..., Smax). En otras palabras, al menos algunos de los valores de u", u"(0) (t = 2, ..., I), u"(A) (t = n(A) + 1, ..., n(A) + Z(A)) son determinados por al menos algunos de los valores de función de HS(r', C2') (S = 1, ..., Smax). Por ejemplo, al menos algunos de u", u"(0) (t = 2, ..., I), u"(A) (t = n(A) + 1, ..., n(A) + Z(A)) son al menos algunos de los valores de función HS(r', C2') (S = 1, ..., Smax) o valores de función de al menos algunos de los valores de función de HS(r', C2') (S = 1, ..., Smax). Valores de u", u"(0) (1 = 2, ..., I), u"(A)(i = n(A) + 1, ..., n(A) + Z(A)) que no corresponden a ninguno de los valores de función HS(r', C2') (S = 1, ..., Smax) son establecidos a constantes o números aleatorios.
<Seguridad contra CCA de Esquema de encriptación funcional mejorado>
Asúmase un escenario donde se aplica la estrategia asumida descrita anteriormente al esquema mejorado.
[1] Los parámetros públicos PK se dan a un atacante.
[2] El atacante proporciona la segunda información VSET2 = {A, w(A)^|A = 1, ..., ^} y dos textos planos Mo y Mi a un oráculo de encriptación que tiene los parámetros públicos PK. El oráculo de encriptación elige aleatoriamente bit e {0, 1}, genera un número aleatorio r (Enc-11), genera un texto cifrado C2 que es el OR excluyente de una secuencia binaria que depende del número aleatorio r y un texto plano Mbit que es una secuencia binaria, introduce la pareja de
5 número aleatorio r y el texto cifrado C2 en cada una de Smax (Smax ^ 1) funciones resistentes a colisión Hs(r, C2) (S = 1, ..., Smax) para generar los Smax (Smax ^ 1) valores de función Hs(r, C2) (S = 1, ..., Smax) (Enc-13), genera la clave común K que satisface K = giT T' u e Gt (Fórmula (76)) (Enc-14), y encripta el número aleatorio r por encriptación de clave común usando la clave común K para generar el texto cifrado C(^ + 1). El oráculo de encriptación genera además el texto cifrado C1 que incluye C(0) = u ' b1(0) + £t=2 1 ui(0) bi(0) (Fórmula (77)), C(A) = u ■ £=1 n(A) Wi(A)bi(A) + 10 Zi=n(A)+1 n(A)+Z(A) Ui(A) bi(A) (Fórmula (78)), y C(^ + 1) (Enc-16). Aquí, al menos algunos de u, u,(0) (1 = 2, ..., I), U|(A) (t
= n(A) + 1, ..., n(A) + Z(A)) dependen de al menos algunos de los valores de función HS(r, C2) (S = 1, ..., Smax). El oráculo de encriptación proporciona un texto cifrado Cbit que incluye los textos cifrados C1 y C2 generados al atacante.
[3] El atacante puede generar el siguiente texto cifrado:
15 Sin embargo, el atacante, que no sabe el número aleatorio r, no puede introducir una pareja de número aleatorio r y texto cifrado C2' a cada una de las Smax (Smax ^ 1) funciones resistentes a colisión Hs (S = 1, ..., Smax) para generar los valores de función HS(r, C2') (S = 1, ..., Smax). El atacante por lo tanto proporciona un texto cifrado Cb¡t’ que incluye textos cifrados C1 y C2' a un oráculo de desencriptación que tiene la primera información de clave D*(0) (Fórmula (79)) y la segunda información de clave D*(A) (Fórmulas (80) y (81)). Si hay coeficientes const(p) que satisfacen la fórmula 20 (45), el oráculo de desencriptación, que ha tomado la entrada de los textos cifrados Cbit', genera la clave común K'
(Fórmula (82)) (DEC-11), desencripta el texto cifrado C’(^ +1) incluido en el texto cifrado C1 usando la clave común K' para generar un valor desencriptado r’ (DEC-12), introduce la pareja de valor desencriptado r’ y texto cifrado C2’ en cada una de la Smax (Smax ^ 1) funciones resistentes a colisión Hs (S = 1, ..., Smax) para generar los Smax (Smax ^ 1) valores de función Hs(r’, C2’) (S = 1, ..., Smax) (DEC-13). Como es probable que HS(r’, C2’) t HS(r, C2) debido a la 25 resistencia a colisión de las funciones Hs, es improbable que textos cifrados C’(0) y C’(A) coincidan con textos cifrados
C"(0) = u" ■ b1(0) + £i=2I ui"(0)bi(0) y C"(A) = u" ■ £i=1n(A) wi(A)bi(A) + £i=n(A)+1n(A)+Z(A) ui"(A)bi(A). Por consiguiente, se rechaza la desencriptación.
[4] Como el atacante no puede obtener el resultado de la desencriptación de C2’ = C2 (+) AM, el atacante no puede "sacar bit’ = 0 cuando el resultado de la desencriptación es M0 (+) AM o tiene como salida bit’ = 1 cuando la 30 desencriptación es M1 (+) AM. Por lo tanto la estrategia del atacante falla.
[Realización]
A continuación se describirá una realización del esquema mejorado. En la siguiente descripción, se da un ejemplo en el que la primera información VSET1 = {A, v(A)^|A, ..., ^} se incrusta en información de clave y la segunda información VSET2 = {A, w(A)^|A, ..., ^} se incrusta en un texto cifrado. Sin embargo, la segunda información VSET2 = {A, w(A)^|A, 35 ..., ^} puede ser incrustada en la información de clave y la primera información VSET1 = {A, v(A)^|A, ..., ^} puede ser
incrustada en el texto cifrado. En el ejemplo de esta realización, el vector de n(A) dimensiones v(A)^ que constituye la primera información VSET1 corresponde a un política particular y el vector de n(A) dimensiones w(A)^ que constituye la segunda información VSET2 = {A, w(A)^|A, ..., ^} corresponde a un atributo. Cuando el atributo correspondiente al vector de n(A) dimensiones w(A)^ coincide con la política correspondiente al vector de n(A) dimensiones w(A)^, 40 producto interior w(A)^ ■ w(A)^ = 0; cuando el atributo correspondiente al vector de n(A) dimensiones w(A)^ no coincide con la política correspondiente al vector de n(A) dimensiones w(A)^, producto interior w(A)^ ■ w(A)^ t 0.
[Configuración general]
Como se ilustra en la figura 3, un sistema de encriptación 1 de esta realización incluye un dispositivo de encriptación 110, un dispositivo de desencriptación 120 y un dispositivo de generación de claves 130. El dispositivo de encriptación 45 110 y el dispositivo de desencriptación 120, y el dispositivo de desencriptación 120 y el dispositivo de generación de
claves 130 son capaces de comunicar información a través de medios tales como una red y media de grabación portátil.
[Dispositivo de encriptación]
Como se ilustra en la figura 4, el dispositivo de encriptación 110 de esta realización incluye una unidad de entrada 50 111, una unidad de salida 112, un almacenamiento 113, un controlador 114, una unidad generadora de número
aleatorio 115, unidades de encriptación 116a, 116d, y 116e, una unidad de cálculo de función 116b, una unidad generadora de clave común 116c, y una unidad de combinación 117.
El dispositivo de encriptación 110 es un dispositivo particular que incluye un ordenador muy conocido o dedicado que tiene componentes tales como una CPU (unidad de procesamiento central), una RAM (memoria de acceso aleatorio), 55 y una ROM (memoria de solo lectura), por ejemplo, y un programa particular. La unidad generadora de número aleatorio 115, las unidades de encriptación 116a, 116d y 116e, la unidad de cálculo de función 116b, la unidad
5
10
15
20
25
30
35
40
45
50
55
generadora de clave común 116c, y la unidad de combinación 117 son unidades de procesamiento configuradas por la CPU que ejecuta un programa particular, por ejemplo. Al menos algunas de las unidades de procesamiento pueden ser circuitos integrados (CI) particulares. Por ejemplo, la unidad generadora de número aleatorio 115 puede ser un CI muy conocido que genera números aleatorios. El almacenamiento 113 es, por ejemplo, una RAM, registros, una memoria caché, o elementos en un circuito integrado, o un dispositivo de almacenamiento auxiliar tales como un disco duro, o áreas de almacenamiento implementadas por una combinación de al menos algunos de estos. La unidad de entrada 111 es, por ejemplo, una interfaz de entrada tal como un teclado, un dispositivo de comunicación, tal como un modem y una tarjeta LAN (red de área local), y un puerto de entrada tal como un terminal USB. La unidad de salida 112 es, por ejemplo, una interfaz de salida, un dispositivo de comunicación, tal como un modem y una tarjeta LAN, y un puerto de salida tal como un puerto USB. El dispositivo de encriptación 110 ejecuta procesos bajo el control del controlador 114.
[Dispositivo de desencriptación]
Como se ilustra en la figura 5, el dispositivo de desencriptación 120 de esta realización incluye una unidad de entrada 121, una unidad de salida 122, un almacenamiento 123, un controlador 124, una unidad generadora de clave común 126a, unidades de desencriptación 126b y 126e, una unidad de cálculo de función 126c, una unidad de determinación 126d, y una unidad de separación 127.
El dispositivo de desencriptación 120 es un dispositivo particular que incluye un ordenador muy conocido o dedicado que tiene componentes tales como a CPU, una RAM, y una ROM, y un programa particular. Esto es, el controlador 124, la unidad generadora de clave común 126a, las unidades de desencriptación 126b y 126e, la unidad de cálculo de función 126c, la unidad de determinación 126d y la unidad de separación 127 son unidades de procesamiento configuradas por la CPU que ejecuta un programa particular, por ejemplo. Al menos algunas de las unidades de procesamiento pueden ser circuitos integrados particulares. El almacenamiento 123 es, por ejemplo, una RAM, registros, una memoria caché, o elementos en un circuito integrado, o un dispositivo de almacenamiento auxiliar tal como un disco duro, o áreas de almacenamiento implementadas por una combinación de al menos algunos de estos. La unidad de entrada 121 es, por ejemplo, una interfaz de entrada, un dispositivo de comunicación y un puerto de entrada. La unidad de salida 122 es, por ejemplo, una interfaz de salida, un dispositivo de comunicación y un puerto de salida. El dispositivo de desencriptación 120 ejecuta procesos bajo el control del controlador 124.
[Dispositivo de generación de claves]
Como se ilustra en la figura 6, el dispositivo de generación de claves 130 de esta realización incluye una unidad de entrada 131, una unidad de salida 132, un almacenamiento 133, un controlador 134, una unidad de selección 135, una unidad de generación de información de reparto 136a, una unidad de generación de información secreta 136b, y unidades de generación de claves 136c, 136d y 136e.
El dispositivo de generación de claves 130 es un dispositivo particular que incluye, por ejemplo, un ordenador muy conocido o dedicado que tiene componentes tales como a CPU, una RAM y una ROM y, un programa particular. Esto es, el controlador 134, la unidad de selección 135, la unidad de generación de información de reparto 136a, la unidad de generación de información secreta 136b y las unidades de generación de claves 136c, 136d y 136e son unidades de procesamiento configuradas por la CPU que ejecuta un programa particular. Al menos algunas de las unidades de procesamiento pueden ser circuitos integrados particulares. El almacenamiento 133 es, por ejemplo, una RAM, registros, una memoria caché, o elementos en un circuito integrado, o un dispositivo de almacenamiento auxiliar tales como un disco duro, o áreas de almacenamiento implementadas por una combinación de al menos algunos de estos. La unidad de entrada 131 es, por ejemplo, una interfaz de entrada, un dispositivo de comunicación y un puerto de entrada. La unidad de salida 132 es, por ejemplo, una interfaz de salida, un dispositivo de comunicación y un puerto de salida. El dispositivo de generación de claves 130 ejecuta procesos bajo el control del controlador 134.
[Preestablecimiento]
Más adelante se describirá el preestablecimiento para ejecutar los procesos de esta realización.
Un dispositivo de gestión, no representado, ejecuta [Configuración(1sec, (T; n(1), ..., n(T))): Configuración] descrita anteriormente para establecer los parámetros públicos PK que incluye el conjunto {B(9)A}<p= 0, ..., t, 1sec , y param = (q, E, G1, G2, Gt, e<p), y la información de clave maestra MSK = {B *(9)A}9=0,...,t. Los parámetros públicos PK son establecidos en el dispositivo de encriptación 110, el dispositivo de desencriptación 120 y el dispositivo de generación de claves 130 de modo que los parámetros públicos K pueden ser usados en estos dispositivos. La información de clave maestra MSK se establece en el dispositivo de generación de claves 130 de modo que la información de clave maestra MSK puede ser usada en el dispositivo de generación de claves 130. La información de clave maestra MSK es información secreta que no está abierta al público. Los parámetros públicos PK y otra información pueden ser establecidos en los dispositivos incrustándolos en un programa particular que configura los dispositivos o pueden ser establecidos almacenándolos en almacenamientos de los dispositivos. En esta realización, se dará un ejemplo en el que los parámetros públicos PK y otra información son incrustados en el programa particular.
5
10
15
20
25
30
35
40
45
50
[Proceso de generación de información de clave]
El proceso de generación de información de clave es ejecutado especialmente cuando la información de clave SKS no se almacena en el almacenamiento 123 del dispositivo de desencriptación 120. Cuando se almacena información de clave SKS en el almacenamiento 123 del dispositivo de desencriptación 120, este proceso puede ser omitido. La información de clave puede ser generada antes o después de generar un texto cifrado.
Como se ilustra en la figura 7, en el proceso de generación de información de clave, primero la matriz etiquetada LMT(MT, LAB) correspondiente a la información de clave que va a ser generada es introducida en la unidad de entrada 131 del dispositivo de generación de claves 130 (la figura 6). Como se ha descrito, la matriz etiquetada LMT(MT, LAB) es información en la que una matriz MT en la Fórmula (34) se asocia con las etiquetas LAB(A) (LAB(A) = v(A)^ o LAB(A) = -n(A)^ correspondiente a los vectores de n(A) dimensiones v(A)^ que constituye la primera información VSET1. La matriz etiquetada introducida LMT(MT, LAB) se almacena en el almacenamiento 133 (etapa S11).
Entonces, la unidad de selección 135 selecciona aleatoriamente un vector de COL dimensiones CV^ e FqCOL (Fórmula (36)) que consiste en los elementos del campo finito Fq y almacena el vector de COL dimensiones CV^ en el almacenamiento 133 (etapa S12). La matriz MT y el vector de COL dimensiones CV^ son introducidos en la unidad de generación de información de reparto 136a. La unidad de generación de información de reparto 136a calcula la información de reparto reparto(A) e Fq (A =1, ..., V) según la Fórmula (39) y almacena la información de reparto generada reparto(A) e Fq (A = 1, ..., V) en el almacenamiento 133 (etapa S13). El vector de COL dimensiones CV^ es introducido en la unidad de generación de información secreta 136b y la unidad de generación de información secreta 136b genera la información secreta SE según la Fórmula (37) y almacena la información secreta SE en el almacenamiento 133 (etapa S14).
Entonces la información secreta SE es introducida en la unidad de generación de clave 136c. La unidad de generación de clave 136c genera la información de clave D*(0) según la Fórmula (46) y almacena la información de clave D*(0) en el almacenamiento 133. Por ejemplo, la unidad de generación de clave 136c genera la información de clave D*(o) según la Fórmula (47) y almacena la información de clave D*(0) en el almacenamiento 133 (etapa S15). La información de etiqueta EAB(A) (A =1, ..., V) es introducida en la unidad de generación de clave 136d y la unidad de generación de clave 136d genera la información de clave D*(A) (A = 1, ..., V) según las Fórmulas (48) y (49) y almacena la información de clave D*(A) en el almacenamiento 133. Por ejemplo, la unidad de generación de clave 136d genera la información de clave D*(A) (A = 1, ..., V) según las Fórmulas (50) y (51), y almacena la información de clave D*(A) en el almacenamiento 133 (etapa S16). La matriz etiquetada LMT(MT, LAB), la información de clave D*(0) y la información de clave D*(A) (A = 1, ..., V) son introducidas en la unidad de generación de clave 136e y la unidad de generación de clave 136e genera la información de clave SKS según la fórmula (52) y envía la información de clave SKS a la unidad de salida 132 (etapa S17).
La unidad de salida 132 tiene como salida la información de clave SKS (etapa S18). La información de clave SKS es introducida en la unidad de entrada 121 del dispositivo de desencriptación 120 (la figura 5) y entonces se almacena en el almacenamiento 123.
[Proceso de encriptación]
En el proceso de encriptación, como se ilustra en la figura 8, la segunda información VSET2 = {A, w(A)^|A = 1, ..., V} y un texto plano M, que es una secuencia binaria, son primero introducidos en la unidad de entrada 111 del dispositivo de encriptación 110 (la figura 4) y entonces se almacenan en el almacenamiento 113 (etapa S21).
Entonces la unidad generadora de número aleatorio 115 genera un número aleatorio r y almacena el número aleatorio r en el almacenamiento 113. El número aleatorio r es un elemento del dominio de la función inyectiva R. Por ejemplo, si la función inyectiva R es una función que toma la entrada de un elemento del grupo cíclico Gt, el número aleatorio r es un elemento del grupo cíclico Gt; si la función inyectiva R es una función que toma la entrada de una secuencia binaria, el número aleatorio r es una secuencia binaria (etapa S22).
El número aleatorio r y el texto plano M son introducidos en la unidad de encriptación 116a. La unidad de encriptación 116a proporciona el OR excluyente del valor de función R(r), que es la secuencia binaria obtenida aplicando la función inyectiva R al número aleatorio r, y el texto plano M como el texto cifrado C2 de la siguiente manera:
C2 = M (+) R(r) ...(84)
El texto cifrado C2 se almacena en el almacenamiento 113 (etapa S23).
El número aleatorio r y el texto cifrado C2 son introducidos en la unidad de cálculo de función 116b. La unidad de cálculo de función 116b introduce la pareja del número aleatorio r y el texto cifrado C2 en cada una de las Smax (Smax > 1) funciones resistentes a colisión Hs (S = 1, ..., Smax) para generar la Smax (Smax > 1) valores de función HS(r, C2) e Fq (S = 1, ..., Smax). Obsérvese que Smax en esta realización es una constante. A continuación se da un ejemplo de Smax (etapa S24).
5
10
15
20
25
30
35
40
45
Entonces, la unidad generadora de clave común 116c genera la clave común K e Gt que satisface la Fórmula (76) para el generador gT del grupo cíclico Gt y las constantes t, t’, u' e Fq. Si bien u' e Fq puede ser un número aleatorio , u’ e Fq en esta realización es un valor correspondiente a al menos algunos de los valores de función Hs(r, C2) e Fq (S = 1, ..., Smax) introducidos en la unidad generadora de clave común 116c. Por ejemplo, u’ e Fq es uno de los valores de función Hs(r, C2) e Fq (S = 1, ..., Smax) o un valor de función de uno de los valores de función Hs(r, C2) e Fq (S = 1, ..., Smax). A continuación se da un ejemplo de u’ e Fq (etapa S25).
La clave común K y el número aleatorio r son introducidos en la unidad de encriptación 116d. La unidad de encriptación 116d usa la clave común K para encriptar el número aleatorio r por encriptación de clave común, generando de ese modo el siguiente texto cifrado C(^ + 1):
C0F+ l) = EncK(r) ... (87)
El texto cifrado C(^ + 1) se almacena en el almacenamiento 113 (etapa S26).
La segunda información VSET2 y al menos algunos de los valores de función HS(r, C2) e Fq (S = 1, ..., Smax) así como el texto cifrado C(^ + 1) son introducidos en la unidad de encriptación 116e. La unidad de encriptación 116e establece valores correspondientes a al menos algunos de los valores de función HS(r, C2) e Fq (S = 1, ..., Smax) como valores de al menos algunos de u, u,(0) (1 = 2, ..., I), ui(A) (1 = n(A) + 1, ..., n(A + Z(A)) según un criterio predeterminado, y genera C(0) y C(A) (A = 1, ..., ^) según las Fórmulas (77) y (78). Por ejemplo, al menos algunos de u, u,(0) (1 = 2, ..., I), ui(A) (t = n(A) + 1, ..., n(A + Z(A)) son al menos algunos de los valores de función HS(r, C2) e Fq (S = 1, ..., Smax) o valores de función de al menos algunos de los valores de función HS(r, C2) e Fq (S = 1, ..., Smax). Se tienen que satisfacer las fórmulas (55) y (56). Por ejemplo, si Smax = 3 + £a=1 Tn(A), se establecen Z(A) = 3 ■ n(A) y I = 5, cada uno de u2(0), u4(0), un(A + 1)(A), ..., u3n(A)(A) se establece a un elemento cero 0f, se establece u’ = u3(0), y u, u3(0), us(0), u3n(A)+1(A), ..., u4n(A)(A) son establecidos a al menos algunos de H-i(r, C2), ..., HSmax(r, C2). Aquí, en términos de seguridad, es deseable que u, u3(0), us(0), u3n(A)+1(A), ..., u4n(A)(A) correspondan a al menos algunos de H-i(r, C2), ..., HSmax(r, C2) a modo de uno a uno. En ese caso, el valor de Smax es mayor o igual que el número de u, u3(0), us(0), u3n(A)+1(A) ..., u4n(A)(A).
u, ui(0) (1 = 2, ..., I), ui(A) (1 = n(A) + 1, ..., n(A + Z(A)) que no corresponden a ninguno de los valores de función HS(r, C2) e Fq (S = 1, ..., Smax) son establecidos a constantes, por ejemplo, seleccionadas del campo finito Fq. Cuál de u, ui(0) (1 = 2, ..., I) y ui(A) (1 = n(A) + 1, ..., n(A + Z(A)) corresponde a cuál de H-i(r, C2), ..., HSmax(r, C2) está predeterminado, por ejemplo.
La unidad de encriptación 116e genera el siguiente texto cifrado C1 que incluye la segunda información VSET2, C(0), C(A) (A = 1, ..., ^) y C(^ +1).
Q = (VSET2, C(0), {C(X)}MX)^)eWSET2, C(^ +1)) ... (88)
El texto cifrado C1 se almacena en el almacenamiento 113 (etapa S27).
Los textos cifrados C1 y C2 son introducidos en la unidad de combinación 117. La unidad de combinación 117 genera el valor de bit combinado de la secuencia binaria correspondiente al texto cifrado C1 y el texto cifrado C2 como texto cifrado Código:
El dispositivo de desencriptación 120 puede identificar la position del texto cifrado C1 y la position del texto cifrado C2 en el texto cifrado Código. Por ejemplo, las posiciones de los textos cifrados C1 y C2 en el texto cifrado Código pueden ser fijas, o al texto cifrado Código (etapa S28) se puede añadir información adicional que indica las posiciones de los textos cifrados C1 y C2 en el texto cifrado Código.
El texto cifrado Código es enviado a la unidad de salida 112. La unidad de salida 112 tiene como salida el texto cifrado Código (etapa S29). Esto finaliza el proceso de encriptación.
[Proceso de desencriptación]
Como se ilustra en la figura 9, en el proceso de desencriptación, primero se introduce un texto cifrado Código’ en la unidad de entrada 121 del dispositivo de desencriptación 120 (la figura 5) y entonces es almacenado en el almacenamiento 123. El texto cifrado Código’ puede ser el texto cifrado Código descrito anteriormente, por ejemplo (etapa S41).
5
10
15
20
25
30
35
40
45
50
El texto cifrado Código' es introducido a la unidad de separación 127. La unidad de separación 127 separa el Código' en dos, textos cifrados C1 y C2' mediante un método predeterminado, y almacena los textos cifrados C-T y C2' en el almacenamiento 123. Si el texto cifrado Código' es el texto cifrado Código, Ci = C-T y C2 = C2' (etapa S42).
Entonces, la información de clave SKS y el texto cifrado CT son introducidos en la unidad generadora de clave común 126a. La unidad generadora de clave común 126a determina si una clave común K' e Gt puede ser recuperada o no usando la información de clave SKS y el texto cifrado Ci'. Esto es, la unidad generadora de clave común 126a usa la primera información VSET1 = {A, v(A)^|A = 1,..., V} correspondiente a una matriz etiquetada LMT(MT, LAB), la segunda información VSET2' = {A, w(A)^|A = 1, ..., V} incluida en el texto cifrado C1', y las etiquetas LAB(A) de LMT(MT, LAB) para determinar si el producto interior v(A)^ ■ w(A)^ del vector de n(A) dimensiones v(A)^ que es cada etiqueta LAB(A) de la matriz etiquetada LMT(MT, LAB) incluida en la información de clave SKS y el vector de n(A) dimensiones w(A)^ incluido en VSET2 del texto cifrado C es 0, y usa los resultados de la determinación y cada etiqueta EAB(A) de LMT(MT, LAB) para determinar si GV^ e subespacio<MTiFv>. Como se ha descrito anteriormente, si GV^ e subespacio<MTiFv>, la clave común K' e Gt puede ser recuperada; si no se cumple GV^ e subespacio<MTiFv>, la clave común K' e Gt no puede ser recuperada (etapa S43). Más adelante se describirá en detalle un ejemplo del proceso en la etapa S43. Si se determina que la clave común K' e Gt no es recuperable, se rechaza la desencriptación (etapa S48) y el proceso de desencriptación finaliza.
Por otro lado, si se determina que la clave común K' e Gt es recuperable, la unidad generadora de clave común 126a obtiene coeficientes const(p) que satisfacen la fórmula (45) y calcula la clave común K' e Gt según la Fórmula (82). La clave común K' generada se almacena en el almacenamiento 123 (etapa S44).
El texto cifrado C'(V+1) incluido en el texto cifrado C1' y la clave común K' son introducidos en la unidad de desencriptación 126b. Si C1 = C1', se aplica C(V+1) = C'(V+1). La unidad de desencriptación 126b usa la clave común K' para desencriptar el texto cifrado introducido C' (V+1), obteniendo de ese modo el siguiente valor desencriptado r':
r^DecK'ÍC’OF+l)) ... (90)
La unidad de desencriptación 126b almacena el valor desencriptado r' en el almacenamiento 123 (etapa S45).
El valor desencriptado r' y el texto cifrado C2' son introducidos en la unidad de cálculo de función 126c. La unidad de cálculo de función 126c introduce la pareja del valor desencriptado r' y el texto cifrado Q2 en cada una de Smax (Smax > 1) funciones resistentes a colisión Hs (S = 1, ..., Smax) para generar valores de función HS(r', C2') (S = 1, ..., Smax). Los valores de función Hs(r', C2') (S = 1, ..., Smax) son almacenados en el almacenamiento 123 (etapa S46).
Entonces al menos algunos de los valores de función Hs(r', C2') e Fq (S = 1, ..., Smax), y la segunda información VSET2' incluida en el texto cifrado C1', y textos cifrados C'(0), {C'(A)}a, w(A)^)eVSET2' son introducidos en la unidad de determinación 126d. La unidad de determinación 126d usa los vectores de n(A) dimensiones w(A)^ incluidos en la segunda información VSET2' y al menos algunos de los valores de función HS(r', C2') para generar los siguientes textos cifrados C"(0), C"(A) (A = 1, ..., V):
C"(0) = u" ■ b,(0) + <(0)^(0) ... (91)
C%X) = o" • E..,”w w,(A)-b,(A) + H-,nWMW u,"w-b,(X) ... (92)
El método para generar los textos cifrados C"(0) y C"(A) (A = 1, ..., V) es el mismo que el método para generar los textos cifrados C(0) y C(A) (A = 1, ..., V) en la etapa S27, excepto que la segunda información VSET2 es sustituida por la segunda información VSET2', los valores de función HS(r, C2) son sustituidos por los valores de función HS(r', C2'), y u, Ui(0) (1 = 2, ..., I), Ui(A) (1 = n(A) + 1, ..., n(A) + Z(A)) son sustituidos por u", u"(0) (1 = 2, ..., I), u"(A) (1 = n(A) + 1, ..., n(A) + Z(A)). Esto es, la unidad de determinación 126d establece los valores correspondientes a al menos algunos de los valores de función Hs(r', C2') e Fq (S = 1, ..., Smax) como al menos algunos de los valores de función u", u"(0) (t = 2, ..., I), ui'(A) (1 = n(A) + 1, ..., n(A) + Z(A)) según el criterio predeterminado, y genera C"(0) y C"(A) (A = 1, ..., V) según las Fórmulas (91) y (92). Por ejemplo, al menos algunos de u", u"(0) (t = 2, ..., I), u"(A) (t = n(A) + 1, ..., n(A) + Z(A)) son al menos algunos de los valores de función HS(r', C2') e Fq (S =1, ..., Smax) o valores de función de al menos algunos de los valores de función Hs(r', C2') e Fq (S = 1, ..., Smax). También, se tienen que satisfacer las Fórmulas (55) y (56) en las que ui(0) y ui(A) son sustituidas por ui(0) y u"(Á). Por ejemplo, si Smax = 3 + £a=1 Vn(A), se establecen Z(A) = 3 ■ n(A) y I = 5, cada uno de u2"(0), u4"(0), un(A)+1"(A), ..., u3n(A)"(A) se establecen a un elementos cero 0f, y u", u3"(0), u5"(0), u3n(A)+1"(A), ..., u4 n(A)"(A) se establecen a al menos algunos de H1(r', C2'), ..., Hsmax(r', C2'). Por ejemplo, u", u3"(0), ua"(0), u3n(A)+1"(A), ..., u4.n(A)"(A) corresponden a al menos algunos de H1(r', C2'), ..., Hsmax(r', C2') a modo de uno a uno. En ese caso, el valor de Smax es mayor o igual que el número de u", u3"(0), u5"(0), u3n(A)+1"(A), ..., u4n(A)"(A).
u", u¡"(0) (1 = 2, ..., I), u"(A) (1 = n(A) + 1, ..., n(A) + Z(A)) que no corresponden a ninguno de los valores de función Hs(r', C2') e Fq (S = 1, ..., Smax) se establecen a las constantes seleccionadas del campo finito Fq (las mismas constantes que las usadas en la etapa S27), por ejemplo. Cuál de u", u"(0) (t = 2, ..., I), u"(A) (t = n(A) + 1, ..., n(A) + Z(A)) corresponde a cuál de H1(r', C2'), ..., Hsmax(r', C2') es predeterminado según el mismo criterio usado en la etapa s27.
5
10
15
20
25
30
La unidad de determinación 126d determina si se satisface o no todo de lo siguiente (etapa S47).
C'(0) = C"(0) ...(93)
Aquí, si no se satisface al menos una de las Fórmulas (93) y (94), se rechaza la desencriptación (etapa S48) y el proceso de desencriptación finaliza.
Por otro lado, si se satisfacen todas las Fórmulas (93) y (94), el texto cifrado C2', que es la secuencia binaria, y el valor desencriptado r' son introducidos en la unidad de desencriptación 126e. La unidad de desencriptación 126e genera el valor desencriptado M' que es el OR excluyente del valor de función R(r'), que es la secuencia binaria obtenida aplicando la función inyectiva R al valor desencriptado r', y el texto cifrado C2' (etapa S49).
El valor desencriptado M' es enviado a la unidad de salida 122 y la unidad de salida 122 tiene como salida el valor desencriptado M' (etapa S50). Esto finaliza el proceso de desencriptación.
[Ejemplo específico del proceso en la etapa S43]
A continuación se describirá un ejemplo específico de la operación en la etapa S43. Por simplicidad, en la descripción del ejemplo se usa el vector de COL dimensiones GV^ en la Fórmula (38). Sin embargo, esto no limita la presente invención; el proceso descrito más adelante puede ser extendido y aplicado al caso donde se usa un vector generalizado de COL dimensiones GV^ como en la Fórmula (36).
Como se ilustra en la figura 10, la unidad generadora de clave común 126a usa la primera información VSET1 = {A, v(A)^|A = 1, ..., ^} correspondiente a la matriz etiquetada LMT(MT, LAB) y la segunda información VSET2' = { {A, w(A)^|A = 1, ..., ^} incluida en el texto cifrado C-T, y las etiquetas LAB(A) de LMT(MT, LAB) para generar las matrices parciales MTtfv ilustradas en las Fórmulas (41) a (44). Aquí, MTtfv se puede expresar como:
MTtfv —
^ mtROW(l),l ■ ■' mtROW(l),COL ^
mtROW(o),l mtROW(co),COLy
... (96)
donde MTtfv en la Fórmula (96) es una matriz de w filas y COL columnas, w es un entero mayor o igual que 1, y ROW(1), ..., ROW(w) son números de fila ROW(1), ..., rOw(w) e SET de la matriz MT (Fórmula (34)) en la que LIT(ROW(1)) = 1, ..., LIT(ROW(w)) =1 (etapa S431).
Entonces, la unidad generadora de clave común 126a realiza cálculos para cada vector de filas mt^ = (mtA', 1, ..., mtA', col) (A' = ROW(1), ..., ROW(w)) de MTtfv y cálculos entre vectores de filas mtA^ de MTtfv para generar una matriz triangular superior MTtfv', donde una submatriz a partir de la primera fila y columna a la Q-ésimo fila y columna es una matriz triangular superior Q x Q en la que elementos diagonales son una identidad multiplicativa 1f y, todos los elementos de la Q+1 y subsiguientes vectores de filas mtA'^, si los hay, son la identidad aditiva 0f. Aquí, Q es un entero mayor o igual que 1 y menor o igual que el número de filas y el número de columnas de la submatriz MTtfv. MTtfv' puede ser por ejemplo:
10
15
20
25
30
35
40
45
Sin embargo, pueden no ser los elementos de la O+i-ésima o más filas y pueden no ser los elementos de la O+i- ésima o más columnas.
La matriz triangular superior MTtfv' como se da anteriormente puede ser generada usando eliminación Gaussiana, por ejemplo. Por ejemplo, primero el vector de filas mti^ = (mti,i, ..., mti,coL) del primer fila de la submatriz MTtfv se divide por mti,i y el resultado se establece como el primer vector de filas de MTtfv'. Entonces, el primer vector de filas de MTtfv' multiplicado por mt2,i es sustraído del segundo vector de filas it^ = (mt2,i,..., mt2,coL) de la submatriz MTtfv para generar un vector de filas (0f, mt2,2", ..., mt2,COL"), que entonces se divide por mt2,2" y el resultado se establece como el segundo vector de filas de MTtfv'. De esta manera, cada vector de filas generado previamente de MTtfv' puede ser transformado en un vector de filas de un mayor número de filas para generar una matriz triangular superior MTtfv'. Las operaciones para generar la matriz triangular superior MTtfv' son operaciones unitarias en vectores de filas y operaciones binarias entre vectores de filas y no se pueden realizar operaciones diferentes en elementos diferentes en el mismo vector de filas. Cuando el módulo para división llega a la identidad aditiva 0= se selecciona un nuevo vector de filas a transformar. Si la submatriz Mtfv incluye múltiples vectores de filas que no son linealmente independientes entre sí (esto es, múltiples vectores de filas linealmente dependientes), un vector que es representativo de esos vectores de filas es el vector de filas que contiene los elementos de la matriz triangular superior O x O y los otros vectores de filas son vectores de filas que consisten únicamente en la identidad aditiva 0= (etapa S432).
Entonces la unidad generadora de clave común i26a establece A' = 2 (etapa S433). La unidad generadora de clave común i26a establece el siguiente vector en la Fórmula (98) como nuevo (mtii' ... mticou) para actualizar el vector de filas (mti,i ... mti,coL') de la primera fila de la matriz triangular superior MTtfv'.
(mtu'... mti,col) - (mtu' - 1F) • ... mt^, COl') - (98)
Aquí, (mtA', i' ... mtA,coL') representa el vector de filas de la A'-ésima fila de la matriz triangular superior MTtfv'.
La unidad generadora de clave común i26a determina si se cumple o no A' = O (etapa S435). Si no se cumple A' = O, la unidad generadora de clave común i26a establece A' + i como nuevo A' (etapa s436) y entonces retorna a la etapa S434. Por otro lado, si A' = O, la unidad generadora de clave común i26a determina si se satisface o no la siguiente fórmula (etapa S437).
Si se satisface la Fórmula (99), la unidad generadora de clave común i26a determina que K' es desencriptable (etapa S438); de lo contrario, la unidad generadora de clave común i26a determina que K' no es desencriptable (etapa S439).
Todos los aspectos específicos de las operaciones para generar la matriz triangular superior MTtfv' en la etapa S432 y todos los aspectos específicos de las operaciones en la etapa S434 son almacenados en un almacenamiento i23. Si se determina que K' es desencriptable (etapa S438), todas las operaciones para generar la matriz triangular superior MTtfv' y todas las operaciones en la etapa s434 son aplicadas a una matriz que incluye los elementos de la submatriz MTtfv como sus indeterminados. Un vector de columnas de la primera fila de una matriz obtenida como resultado es la suma lineal de vectores de columnas indA'^ = (indA',i, ..., indA', COL) (A' = ROW(i), ..., ROW(u>) e SET) de una matriz INDtfv que incluye los elementos de la submatriz MTtfv como sus indeterminados, esto es, la suma de productos de vectores de filas ind^ y un coeficiente const(A') correspondiente a los vectores de columnas.
const(ROW(l)) • indROw(i)^ + ... +const(ROW(oo)) • indROw(m)^
El coeficiente const(p) correspondiente a un vector de columnas indm^ en la m-ésima fila (m e SET) de la matriz INDtfv es el coeficiente const(p) que satisface la Fórmula (45) (véanse las relaciones en las Fórmulas (37) y (39)).
[Variaciones]
La presente invención no se limita a las realizaciones descritas anteriormente. Por ejemplo, si bien en la etapa S47 se hace la determinación de si se satisfacen o no ambas Fórmulas (93) y (94), la determinación en la etapa S47 puede ser para si la combinación de C'(0) y C'(A) (A = i, ..., V) coincide o no con la combinación de C"(0) y C"(A)(A = i,..., V). Como alternativa, se puede hacer la determinación de si un valor de función correspondiente a C'(0) y C'(A) (A = i, ..., V) coincide con un valor de función correspondiente a C"(0) y C"(A) (A = i, ..., V). Como alternativa, se puede hacer la determinación con una función que tiene como salida a primer valor cuando se satisfacen ambas Fórmulas (93) y (94) y tiene como salida un segundo valor cuando no se satisface al menos una de las Fórmulas (93) y (94).
Cuando se rechaza la desencriptación en la etapa S48, el dispositivo de desencriptación i20 puede sacar información de error o un número aleatorio no relacionado para desencriptación o puede no sacar nada.
Las operaciones definidas en el campo finito Fq descrito anteriormente pueden ser sustituidas por operaciones definidas en un anillo finito ring Zq de orden q. Una manera ejemplar de sustituir operaciones definidas en un campo
5
10
15
20
25
30
finito Fq con operaciones definidas en un anillo finito Zq es permitir el orden q que no es un primo o una potencia de un primo.
Los términos en las Fórmulas (46), (48) a (51) y (53) a (56) y otras operaciones que son multiplicadas por un identidad aditiva son las identidades de los grupos cíclicos G1 o G2. Operaciones en los términos que son multiplicados por una identidad aditiva pueden realizarse o no.
Los procesos descritos anteriormente pueden ser realizados no únicamente en el orden cronológico presentado en esta memoria sino también pueden ser realizados en paralelo o por separado dependiendo de la capacidad de procesamiento de los dispositivos que realizan los procesos o como sea necesario. Se entenderá que se pueden hacer otras modificaciones según sea apropiado sin apartarse del espíritu de la presente invención.
Si la configuración de cualquiera de las realizaciones descritas anteriormente es implementada por un ordenador, procesos de funciones que los dispositivos necesitan incluir son descritos por un programa. Los procesos de las funciones son implementados en un ordenador ejecutando el programa en el ordenador.
El programa que describe los procesos puede ser grabado en un medio de grabación legible por ordenador. El medio de grabación legible por ordenador puede ser cualquier medio de grabación tal como un dispositivo de grabación magnética, un disco óptico, un medio de grabación magneto-óptico, o una memoria de semiconductor, por ejemplo.
El programa se distribuye vendiendo, transfiriendo o prestando un medio de grabación portátil en el que se graba el programa, tal como un DVD o un CD-ROM. El programa puede ser almacenado en un dispositivo de almacenamiento de un ordenador servidor y ser trasferido desde el ordenador servidor a otros ordenadores por una red, distribuyendo de ese modo el programa.
Un ordenador que ejecuta el programa almacena primero el programa grabado en un medio de grabación portátil o transferido desde un ordenador servidor a un dispositivo de almacenamiento del ordenador. Cuando el ordenador ejecuta los procesos, el ordenador lee el programa almacenado en el dispositivo de almacenamiento del ordenador y ejecuta los procesos según el programa leído. En otro modo de ejecución del programa, el ordenador puede leer el programa directamente del medio de grabación portátil y ejecuta los procesos según el programa o el ordenador puede ejecutar los procesos según el programa recibido cada vez que el programa es trasferido desde el ordenador servidor al ordenador. Como alternativa, los procesos se pueden ejecutar usando un servicio denominado ASP (Proveedor de Servicios de Aplicación) en el que el programa no es trasferido desde un servidor al ordenador pero se implementan funciones de proceso mediante instrucciones para ejecutar el programa y adquisición de los resultados de la ejecución.
[Descripción de numerales de referencia]
1 Sistema de encriptación
110 Dispositivo de encriptación
120 Dispositivo de desencriptación
Claims (21)
- 510152025303540REIVINDICACIONES1. Un dispositivo de encriptación (110) que comprende:una unidad generadora de número aleatorio (115) adaptada para generar un número aleatorio r;una primera unidad de encriptación (116a) adaptada para generar un texto cifrado C2, el texto cifrado C2 es un OR excluyente de una secuencia binaria dependiente del número aleatorio r y un texto plano M, el texto plano M es una secuencia binaria;una unidad generadora de clave común (116c) adaptada para generar una clave común K, la clave común es un elemento de un grupo cíclico Gt;una segunda unidad de encriptación (116d) adaptada para encriptar el número aleatorio r por encriptación de clave común usando la clave común K para generar texto cifrado C(^ + 1); yuna tercera unidad de encriptación (116e) adaptada para generar un texto cifrado C1 que incluyeC(0) = u-b1(0) + Xl',2ul(0)bl(0),C(A) = u ■ w, (X) • b, (X) + u, (X) b, (X)y el texto cifrado C(^ + 1); en donde A = 1, ..., ^ y en donde ^ es un entero mayor o igual que 1, 9 es un entero mayor o igual que 0 y menor o igual que ^, n(9) es un entero mayor o igual que 1, Z(9) es un entero mayor o igual que 0, A es un entero mayor o igual que 1 y menor o igual que ^, I es una constante mayor o igual que 2 y menor o igual que n(0) + Z(0), e9 es un mapa bilineal no degenerativo que tiene como salida un elemento del grupo cíclico Gt en respuesta a la introducción de n(9)+Z(9) elementos Yp de un grupo cíclico G1 y n(9)+Z(9) elementos Yp* de un grupo cíclico G2 donde p = 1, ..., n(9) + Z(9), i es un entero mayor o igual que 1 y menor o igual que n(9) + Z(9), bi(9) son vectores de base de n(9)+Z(9) dimensiones consistente cada uno en n(9) + Z(9) elementos del grupo cíclico G1, b*(9) son vectores de base de n(9)+Z(9) dimensiones consistente cada uno en n(9) + Z(9) elementos del grupo cíclico G2, 8(i, j) de una función delta de Kronecker, e<p(bi(9), bj*(9)) = gTTT’6(i, j) se satisface para un generador gT del grupo cíclico Gt y constantes t y t’, y w(A)^ = (w-i(A), ..., Wn(A)(A)) son vectores de n(A) dimensiones que consisten en w-i(A), ..., Wn(A)(A);el dispositivo de encriptación (110) comprende además una unidad de cálculo de función (116b) adaptada para generar Smax valores de función Hs(r, C2) donde Smax es una constante entera positiva y S = 1, ..., Smax, cada uno de los valores de función HS(r, C2) se obtiene introduciendo una pareja del número aleatorio r y el texto cifrado C2 en cada una de funciones resistentes a colisión Hs donde S = 1, ..., Smax, yal menos algunas de las funciones resistentes a colisión Hs son funciones aleatorias; yal menos algunos de los valores de u, U2(0), ..., u¡(0), Un(A)+1(A), ..., Un(A)+z(A)(A) corresponden a al menos algunos de los valores de función Hs(r, C2) donde S = 1, ..., Smax.
- 2. El dispositivo de encriptación según la reivindicación 1, en donde la secuencia binaria dependiente del número aleatorio r es un valor de función obtenido aplicando una función aleatoria al número aleatorio r.
- 3. El dispositivo de encriptación según la reivindicación 1 o 2, en donde Z(A) = 3 • n(A), I = 5, Smax = 3 + £a=1T n(A), U2(0), U4(0), Un(A)+1(A), ..., U3.n(A)(A) son elementos cero, K = gTT T’ u’ e Gt, u’ = U3(0), y u, U3(0), U5(0), U3n(A)+1(A), ..., U4 • n(A)(A) son al menos algunos de H-i(r, C2), ..., Hsmax(r, C2).
- 4. El dispositivo de encriptación según una cualquiera de las reivindicaciones 1 a 3, en donde:las constantes t y t’, los elementos w-i(A), ..., Wn(A)(A), los valores de función Hs(r, C2) donde S = 1, ..., Smax, y u, U2(0), ..., U|(0), Un(A)+1(A), ..., Un(A)+z(A)(A) son elementos de un campo finito Fq; ycada orden de los grupos cíclicos G1 y G2 es igual al orden q del campo finito Fq donde q > 1.
- 5. Un dispositivo de desencriptación (120) que comprende:una unidad generadora de clave común (126a) adaptada para generar una clave común5101520253035K'= e„(C'(0),D*(0))- n^(C'(rt,D,(rt)cons^>|aeSET ALAB(|a)=v(|i)_>}jeSETALAB((i)=-iv(|a)_>usando primera información de clave D*(0), segunda información de clave D*(A) y textos cifrados introducidos C'(0) y C'(A) cuando constantes const(p) que satisfacen SE = XmeSET const(p)reparto(|j) existen donde p e SET; yuna primera unidad de desencriptación (126b) adaptada para desencriptar un texto cifrado introducido C’(V + 1) usando la clave común K’ para generar un valor desencriptado r’; en donde A = 1, ..., V y en donde V es un entero mayor o igual que 1, 9 es un entero mayor o igual que 0 y menor o igual que V, Z(9) es un entero mayor o igual que 0, A es un entero mayor o igual que 1 y menor o igual que V, n(9) es un entero mayor o igual que 1, l es una constante mayor o igual que 2 y menor o igual que n(0) + Z(0), e9 es un mapa bilineal no degenerativo que tiene como salida un elemento de un grupo cíclico Gt en respuesta a la introducción de n(9)+Z(9) elementos Yp de un grupo cíclico G1 y n(9)+Z(9) elementos Yp* de un grupo cíclico G2 donde p = 1, ..., n(9) + ^(9), i es un entero mayor o igual que 1 y menor o igual que n(9) + Z(9), bi(9) son vectores de base de n(9)+Z(9) dimensiones consistente cada uno en n(9) + Z(9) elementos del grupo cíclico G1, bi*(9) son vectores de base de n(9)+Z(9) dimensiones consistente cada uno en n(9) + Z(9) elementos del grupo cíclico G2, ó(i, j) de una función delta de Kronecker, e9(bi(9), bj*(9)) = gTTT’6(i,j) se satisface para un generador gT del grupo cíclico GTy constantes t y t’, v(A)^ = (v-i(A), ..., vn(A)(A)) son vectores de n(A) dimensiones consistente cada uno en v-i(A), ..., vn(A)(A), w(A)^ = (w1(A), ..., Wn(A)(A)) son vectores de n(A) dimensiones consistente cada uno en w-i(A), ..., Wn(A)(A), etiquetas LAB(A) son elementos de información que representan cada uno el vector de n(A) dimensiones v(A)^ o la negación -v(A)^ del vector de n(A) dimensiones v(A)^ donde A = 1, ..., V, LAB(A) = v(A)^ significa que LAB(A) representa el vector de n(A) dimensiones v(A)^, LAB(A) = -v(A)^ significa que LAB(A) representa la negación -v(A)^ del vector de n(A) dimensiones v(A)^, reparto(A)representa información de reparto obtenida por repartos secreto de información secreta SE donde A = 1, ..., V, la primera información de clave esD (0) = -SE • bj W + X^coef^O)^ (°).la segunda información de clave para A quesatisface LAB(A) = v(A)^ eso. *D (A,) = (share(A.) + coef(A,) • Vj(A,)) • bj (k)+ Z"Í2)c0ef^ ' Vi^) ■ + )coefi(A<) VPO ’la segunda información para A que satisface LAB(A) = -v(A)^ esD* (k) = share(A,) • v, (k) • bt* (I) + coefi M>b i* M -y SET representa un conjunto de A que satisface {LAB(A) = v(A)^} A {v(A)^ ■ v(A)^ = 0} o {LAB(A) = -v(A)^} A {v(A)^ ■ w(A)^ t 0};el dispositivo de desencriptación (120) comprende además:una unidad de cálculo de función (126c) adaptada para generar Smax valores de función HS(r’, C2’) donde Smax es una constante entera positiva y S = 1, ..., Smax, cada uno de los valores de función Hs(r’,C2’) se obtiene introduciendo una pareja del valor desencriptado r’ y un texto cifrado introducido C2’ en cada una de funciones resistentes a colisión Hs donde S = 1, ..., Smax, y al menos algunas de las funciones resistentes a colisión Hs son funciones aleatorias; y una unidad de determinación (126d) adaptada para rechazar desencriptación si los textos cifrados C’(0), C’(A) no coinciden con textos cifradosC(0) = u"b](0) + XU«l"(0)-b,(0),C’W = u"-X"=^ w, (A) -b, (X) + • b, «;ylos valores de al menos algunos de u", U2"(0), ..., u"(0), Un(A) + 1"(A), ..., Un(A)+z(A)"(A) corresponden a al menos algunos de los valores de función Hs(r’, C2’) donde S = 1, ..., Smax.5101520253035
- 6. El dispositivo de desencriptación según la reivindicación 5, en donde:los elementos v-i(A), ..., vn(A)(A), los elementos w-i(A), ..., Wn(A)(A), los valores de función Hs(r', C2') donde S = 1, ..., Smax, and u", U2"(0), ..., u"(0), Un(A) + i"(A), ..., Un(A) + z(a)"(A) son elementos de un campo finito Fq; ycada orden de los grupos cíclicos G1 y G2 es igual al orden q del campo finito Fq donde q > 1.
- 7. El dispositivo de desencriptación según la reivindicación 5 o 6, que comprende además una segunda unidad de desencriptación (126e) adaptada para generar un valor desencriptado M' cuando los textos cifrados C'(0) y C'(A) coinciden con textos cifrados
imagen1 yC"(A) = w, w •b,(X) + ■ b,(X),el valor desencriptado M' es un OR excluyente de una secuencia binaria dependiente del valor desencriptado r' y una secuencia binaria que es un texto cifrado introducido C2'. - 8. El dispositivo de desencriptación según cualquiera de las reivindicaciones 5 a 7, en donde Z(A) = 3 ■ n(A), I = 5, Smax = 3 + £a=1 v n(A), u2"(0), U4"(0), Un(A)+i"(A), ..., U3 n(A)"(A) son elementos cero, K' = gTTT'u"' e Gt, u"' = U3"(0), u", U3"(0), U5"(0), u3 n(A)+i"(A), ..., u4 n(A)"(A) son al menos algunos de Hi(r', C2'), ..., Hsmax(r', C2'), la primera información de clave es D*(0) = -SE ■ bi*(0) + b3*(0) + coef4(0) ■ b4*(0), la segunda información de clave para A que satisface LAB(A) = v(A)^ es* *D (X) = (share(X) + coef(X,) • Vj(X)) • bj (X)y la segunda información de clave para A que satisface LAB(A) =- v(A)^ esD* (X) = share(X) • vt (X) • b* (X) + coefi V M ■
- 9. El dispositivo de desencriptación según la reivindicación 8, en donde la secuencia binaria dependiente del valor desencriptado r' es un valor de función obtenido aplicando una función aleatoria al valor de desencriptación r'.
- 10. Un método de encriptación que comprende las etapas de:generar un número aleatorio r mediante una unidad generadora de número aleatorio (115);generar un texto cifrado C2 mediante una primera unidad de encriptación (116a), el texto cifrado C2 es un OR excluyente de una secuencia binaria dependiente del número aleatorio r y un texto plano M, el texto plano M es una secuencia binaria;generar una clave común K mediante una unidad generadora de clave común (116c), la clave común es un elemento de un grupo cíclico Gt;encriptar, mediante una segunda unidad de encriptación (116d), el número aleatorio r por encriptación de clave común usando la clave común K para generar texto cifrado C(V + 1); ygenerar un texto cifrado C1 queC(X) = u • wi (X) • bi (^)+üi (^) bi $0 yel text0 cifrad0 +1)
imagen2 una tercera unidad de encriptación (116e); en donde A = 1, ..., V y en donde V es un entero mayor o igual que 1,9 es un entero mayor o igual que 0 y menor o igual que V, n(9) es un entero mayor o igual que 1, Z(9) es un entero mayor o igual que 0, A es un entero mayor o igual que 1 y menor o igual que V, I es una constante mayor o igual que 2 ymenor o igual que n(0) + Z(0), e9 es un mapa bilineal no degenerativo que tiene como salida un elemento del grupo cíclico Gt en respuesta a la introducción de r|(9)+Z(9) elementos Yp de un grupo cíclico G1 y n(9)+Z(9) elementos Yp* de un grupo cíclico G2 donde p = 1, ..., n(9) + ^(9), i es un entero mayor o igual que 1 y menor o igual que n(9) + Z(9), bi(9) son vectores de base de n(9)+Z(9) dimensiones consistente cada uno en n(9) + Z(9) elementos del grupo cíclico 5 G1, bi*(9) son vectores de base de n(9)+Z(9) dimensiones consistente cada uno en n(9) + Z(9) elementos del grupo cíclico G2, 8(i, j) de una función delta de Kronecker, e9(bi(9), bj*(9)) = gTTT’6(i,j) se satisface para un generador gT del grupo cíclico Gt y constantes t y t’, y w(A)^ = (wi(A), ..., Wn(A)(A)) son vectores de n(A) dimensiones consistente cada uno en wi(A), ..., Wn(A)(A);el método de encriptación comprende además la etapa de generar Smax valores de función Hs(r, C2) mediante una 10 unidad de cálculo de función (116b) donde Smax es una constante entera positiva y S = 1, ..., Smax, cada uno de los valores de función HS(r, C2) se obtiene introduciendo una pareja del número aleatorio r y el texto cifrado C2 en cada una de funciones resistentes a colisión Hs donde S = 1, ..., Smax, y al menos algunas de las funciones resistentes a colisión HS son funciones aleatorias; yal menos algunos de los valores de u, U2(0), ..., Ui(0), Un(A)+1(A), ..., Un(A)+z(A)(A) corresponden a al menos algunos de los 15 valores de función Hs(r, C2) donde S = 1, ..., Smax. - 11. El método de encriptación según la reivindicación 10, en donde la secuencia binaria dependiente del número aleatorio r es un valor de función obtenido aplicando una función aleatoria al número aleatorio r.
- 12. El método de encriptación según la reivindicación 10 y 11, en donde Z(A) = 3 - n(A), I = 5, Smax = 3 + £a=1T n(A), U2(0), U4(0), Un(A)+1 (A), ..., U3 n(A)(A) son elementos cero, K = gTTT’u’ e Gt, u’ = U3(0), y u, U3(0), U5(0), U3n(A)+1(A), ..., U4 n(A)(A)20 son al menos algunos de H1(r, C2), ..., Hsmax(r, C2).
- 13. El método de encriptación según una cualquiera de las reivindicaciones 10 a 12, en donde:las constantes t y t’, los elementos W1(A), ..., Wn(A)(A), los valores de función Hs(r, C2) (S = 1, ..., Smax) y u, U2(0), ..., ui(0), Un(A)+1 (A), ..., Un(A)+z(A)(A) son elementos de un campo finito Fq; ycada orden de los grupos cíclicos G1 y G2 es igual al orden q del campo finito Fq donde q > 1.25 14. Un método de desencriptación que comprende las etapas de:cuando existen constantes const(p) que satisfacen SE = Xm£set const(|j)reparto(|j) donde p e SET, generar una clave comúnK' = e0 (C (0), D* (0)) ■ n1S (C 00,D* (n))cons,<">(leSET ALAB(n)=v(|a)_>V, V >• rK(c'(n).DV>rnst(rt,(vM w<'i) )|aeSETALAB((a)=-iv(n)^mediante una unidad generadora de clave común (126a), usar primera información de clave D*(0), segunda 30 información de clave D*(A) y textos cifrados introducidos C’(0) y C’(A); ydesencriptar un texto cifrado introducido C’(V + 1), mediante una primera unidad de desencriptación (126b), usando la clave común K’ para generar un valor desencriptado r’; en donde A = 1, ..., V y en donde V es un entero mayor o igual que 1, 9 es un entero mayor o igual que 0 y menor o igual que V, Z(9) es un entero mayor o igual que 0, A es un entero mayor o igual que 1 y menor o igual que V, n(9) es un entero mayor o igual que 1, l es una constante mayor o 35 igual que 2 y menor o igual que n(0) + Z(0), e9 es el mapa bilineal no degenerativo que tiene como salida un elemento de un grupo cíclico Gt en respuesta a la introducción de n(9)+Z(9) elementos Yp de un grupo cíclico G1 y n(9)+Z(9) elementos Yp* de un grupo cíclico G2 donde p = 1, ..., n(9) + Z(9), i es un entero mayor o igual que 1 y menor o igual que n(9) + Z(9), bi(9) son vectores de base de n(9)+Z(9) dimensiones consistente cada uno en n(9) + Z(9) elementos del grupo cíclico G1, b*(9) son vectores de base de n(9)+Z(9) dimensiones consistente cada uno en n(9) + Z(9) 40 elementos del grupo cíclico G2, 8(i, j) de una función delta de Kronecker, e9(bi(9), bj*(9)) = gTT T’ 5(i,j) se satisface para un generador gT del grupo cíclico Gt y constantes t y t’, v(A)^ = (v1(A), ..., vn(A)(A)) son vectores de n(A) dimensiones consistente cada uno en v1(A) ..., vn(A)(A), w(A)^ = (w1(A), ..., Wn(A)(A)) son vectores de n(A) dimensiones consistente cada uno en W1(A), ..., Wn(A)(A), etiquetas LAB(A) son elementos de información que representan cada una el vector de n(A) dimensiones v(A)^ o la negación -v(A)^ del vector de n(A) dimensiones v(A)^ donde A = 1, ..., V, LAB(A) = v(A)^ 45 significa que LAB(A) representa el vector de n(A) dimensiones v(A)A LAB(A) = -v(A)^ significa que LAB(A) representa la negación -v(A)^ del vector de n(A) dimensiones, reparto(A) representa información de reparto obtenida por repartos secreto de información secreta SE donde A = 1, ..., V, la primera información de clave es5101520253035jfc f \^ I ♦D (0) = -SE • bj (0) + ^ eoeí^O) ■ bl (0),la segunda información de clave para A que satisfaceLAB(A) = v(A)^ esskD (k) = (share(X) + coef(A,) • vt (k)) • bj (k)+ T.tf coefW ■ V, (A) ■■ b,* (A) + coef, (X) -b,* (A),la segunda información para A que satisface LAB(A) = -v(A)^ esD'(A) = share(X) ■ v, (A) ■ b¡(1)+ Y^'I^W(A) ¿/(A),y SET representa un conjunto de A que satisface {LAB(A) = v(A)^} A {v(A)^ ■ w(A)^ = 0} o {LAB(A) = -v(A)^} A {v(A)^ ■ w(A)^ t 0};el método de desencriptación comprende además las etapas de:generar Smax valores de función Hs(r', C2') mediante una unidad de cálculo de función (126c) donde Smax es una constante entera positiva y S = 1, ..., Smax, cada uno de los valores de función Hs(r', C2') se obtiene introduciendo una pareja del valor desencriptado r' y un texto cifrado introducido C2' en cada una de función resistente a colisión Hs donde S = 1, ..., Smax, y al menos algunas de las funciones resistentes a colisión Hs son funciones aleatorias; yrechazar desencriptación mediante una unidad de determinación (126d) si los textos cifrados C'(0), C'(A) no coinciden con textos cifradosC"(0) = u"-b1(0) + XU<(0)-bl(0),C"(A) = u"-^ w,(A) -b,(A) + • b,(A);yal menos algunos de los valores de u", U2(0), ..., Ui(0), Un(A)+1(A), ..., un(A)+z(A)(A) corresponden a al menos algunos de los valores de función Hs(r', C2') donde S = 1, ..., Smax.
- 15. El método de desencriptación según la reivindicación 14, en donde:los elementos v-i(A) ..., vn(A)(A), los elementos w-i(A), ..., Wn(A)(A), los valores de función Hs(r', C2') donde S = 1, ..., Smax y u", U2"(0), ..., u"(0), un(A) + 1"(A), ..., un(A) + z(a)"(A) son elementos de un campo finito Fq; ycada orden de los grupos cíclicos G1 y G2 es igual al orden q del campo finito Fq donde q > 1.
- 16. El método de desencriptación según la reivindicación 14 o 15, que comprende además la etapa de generar un valor desencriptado M' mediante una segunda unidad de desencriptación (126e) cuando los textos cifrados C'(0) y C'(A) coinciden con textos cifrados
imagen3 yC"(A) = w,(A) b,(A) + ' MA),el valor desencriptado M' es un OR excluyente de una secuencia binaria dependiente del valor desencriptado r' y una secuencia binaria que es un texto cifrado introducido C2'. - 17. El método de desencriptación según una cualquiera de las reivindicaciones 14 a 16, en donde Z(A) = 3 ■ n(A), I = 5, Smax = 3 + £a=1 t n(A), U2"(0), U4"(0), Un(A)+1"(A), ..., U3 n(A)"(A) son elementos cero, K' = giTT'u"' e Gt, u'" = U3"(0), u", ua"(0), ua"(0), u3n(A)+1"(A), ..., u4 n(A)"(A) son al menos algunos de H-i(r', C2'), ..., Hsmax(r', C2'), la primera información de clave es D*(0) = -SE ■ b-i*(0) + b3*(0) + coef4(0) ■ b4*(0), la segunda información de clave para A que satisface LAB(A) = v(A)^ es4: £D (A) = (share(A) + coef(A) • (A)) • bj (A)+ X^)c°ef(X)-vl(>.)-b,*(X) ,+ Z?=2<n!l)+lCOef.W'b.*Wy la segunda información de clave para A que satisface LAB(A) =- v(A)^ esD* (A) - share(A) • vl(A)-bl*(A) + üSn^+icoefv M 'bi* M ■
- 18. El método de desencriptación según la reivindicación 17, en donde la secuencia binaria dependiente del valor 5 desencriptado r' es un valor de función obtenido aplicando una función aleatoria al valor de desencriptación r'.
- 19. Un programa informático para provocar que un ordenador funcione como dispositivo de encriptación de una cualquiera de las reivindicaciones 1 a 4.
- 20. Un medio de grabación legible por ordenador que tiene grabado en el mismo un programa informático para provocar que un ordenador funcione como el dispositivo de encriptación de una cualquiera de las reivindicaciones 1 a10 4.
- 21. Un programa informático para provocar que un ordenador funcione como dispositivo de desencriptación de una cualquiera de las reivindicaciones 5 a 9.
- 22. Un medio de grabación legible por ordenador que tiene grabado en él un programa informático para provocar que un ordenador funcione como dispositivo de desencriptación de una cualquiera de las reivindicaciones 5 a 915
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2010166406 | 2010-07-23 | ||
| JP2010166406 | 2010-07-23 | ||
| PCT/JP2011/066692 WO2012011564A1 (ja) | 2010-07-23 | 2011-07-22 | 暗号化装置、復号装置、暗号化方法、復号方法、プログラム、及び記録媒体 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2686426T3 true ES2686426T3 (es) | 2018-10-17 |
Family
ID=45496982
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES11809734.4T Active ES2686426T3 (es) | 2010-07-23 | 2011-07-22 | Dispositivo de encriptación, dispositivo de desencriptación, método de encriptación, método de desencriptación, programa y medio de grabación |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US8897442B2 (es) |
| EP (1) | EP2597812B1 (es) |
| JP (1) | JP5466763B2 (es) |
| KR (1) | KR101478766B1 (es) |
| CN (1) | CN103004129B (es) |
| ES (1) | ES2686426T3 (es) |
| WO (1) | WO2012011564A1 (es) |
Families Citing this family (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5689839B2 (ja) * | 2012-02-16 | 2015-03-25 | 日本電信電話株式会社 | 公開鍵暗号システム、公開鍵暗号方法、受信装置、およびプログラム |
| CN102665209B (zh) * | 2012-05-10 | 2014-10-08 | 佛山科学技术学院 | 无线传感器网络密钥设置方法 |
| CN102651864B (zh) * | 2012-05-16 | 2014-08-20 | 佛山科学技术学院 | 异构无线传感器网络的密钥设置方法 |
| CN102665210B (zh) * | 2012-05-19 | 2014-10-08 | 佛山科学技术学院 | 分区的无线传感器网络的安全密钥设置方法 |
| EP2947640B1 (en) * | 2013-01-18 | 2017-08-02 | Mitsubishi Electric Corporation | Data decryption device, attribute-based encryption system, random number element removing device, data decryption method, and data decryption programm. |
| WO2015088448A1 (en) * | 2013-12-11 | 2015-06-18 | Singapore Management University | Method for matching probabilistic encrypted data |
| CN106133810B (zh) * | 2014-03-28 | 2020-02-07 | 索尼公司 | 加密处理装置、加密处理方法 |
| JP6180375B2 (ja) * | 2014-06-20 | 2017-08-16 | 日本電信電話株式会社 | コミットメント方法、コミットメントシステム、送信者装置、受信者装置及びプログラム |
| CN106471558B (zh) * | 2014-07-02 | 2018-03-20 | 三菱电机株式会社 | 矩阵生成装置及矩阵生成方法 |
| US10218496B2 (en) | 2014-08-04 | 2019-02-26 | Cryptography Research, Inc. | Outputting a key based on an authorized sequence of operations |
| JP5968484B1 (ja) * | 2015-03-18 | 2016-08-10 | 日本電信電話株式会社 | シェア復旧システム、シェア復旧方法、およびプログラム |
| KR101580514B1 (ko) * | 2015-06-22 | 2015-12-28 | (주) 시큐어가드 테크놀러지 | 시드 키를 이용한 패스워드 관리방법, 패스워드 관리장치 및 이를 적용한 컴퓨터로 읽을 수 있는 기록매체 |
| CN105721166B (zh) * | 2016-03-03 | 2018-09-21 | 武汉大学 | 一种量子计算安全的身份识别协议建立方法 |
| CN107196760B (zh) * | 2017-04-17 | 2020-04-14 | 徐智能 | 具有可调整性的伴随式随机重构密钥的序列加密方法 |
| EP3419211B1 (en) * | 2017-06-23 | 2022-03-30 | Flytxt B.V. | Privacy preserving computation protocol for data analytics |
| US10411891B2 (en) * | 2017-06-28 | 2019-09-10 | Nxp B.V. | Distance-revealing encryption |
| CN110348229B (zh) * | 2019-06-11 | 2021-09-21 | 北京思源理想控股集团有限公司 | 数据的加密方法及装置、数据的解密方法及装置 |
| CN110278206B (zh) * | 2019-06-19 | 2021-10-08 | 董玺 | 一种基于双私人密钥的bwe加密算法 |
| CN117480545A (zh) * | 2021-06-14 | 2024-01-30 | 日本电信电话株式会社 | 累积计算装置、累积计算方法和程序 |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5271061A (en) * | 1991-09-17 | 1993-12-14 | Next Computer, Inc. | Method and apparatus for public key exchange in a cryptographic system |
| WO1997031448A1 (en) * | 1996-02-21 | 1997-08-28 | Card Call Service Co., Ltd. | Communication method using common key |
| US7093137B1 (en) * | 1999-09-30 | 2006-08-15 | Casio Computer Co., Ltd. | Database management apparatus and encrypting/decrypting system |
| US7181017B1 (en) * | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
| US20020141577A1 (en) * | 2001-03-29 | 2002-10-03 | Ripley Michael S. | Method and system for providing bus encryption based on cryptographic key exchange |
| US7088821B2 (en) * | 2001-05-03 | 2006-08-08 | Cheman Shaik | Absolute public key cryptographic system and method surviving private-key compromise with other advantages |
| US20050195975A1 (en) * | 2003-01-21 | 2005-09-08 | Kevin Kawakita | Digital media distribution cryptography using media ticket smart cards |
| US9818136B1 (en) * | 2003-02-05 | 2017-11-14 | Steven M. Hoffberg | System and method for determining contingent relevance |
| KR100585119B1 (ko) * | 2004-01-07 | 2006-06-01 | 삼성전자주식회사 | 암호화 장치, 암호화 방법 및 그 기록매체 |
| US7937593B2 (en) * | 2004-08-06 | 2011-05-03 | Broadcom Corporation | Storage device content authentication |
| US20080046731A1 (en) * | 2006-08-11 | 2008-02-21 | Chung-Ping Wu | Content protection system |
| EP2122903A1 (en) * | 2006-12-21 | 2009-11-25 | International Business Machines Corporation | Key distribution for securing broadcast transmission to groups of users in wireless networks |
| JP4843511B2 (ja) | 2007-01-22 | 2011-12-21 | 日本電信電話株式会社 | 同報通信暗号化方法、情報復号方法、それらの装置、それらのプログラム、およびそれらの記録媒体 |
| US8630419B2 (en) * | 2008-08-13 | 2014-01-14 | Gvbb Holdings S.A.R.L. | Apparatus and method for encrypting image data, and decrypting the encrypted image data, and image data distribution system |
| JP5322620B2 (ja) * | 2008-12-18 | 2013-10-23 | 株式会社東芝 | 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム |
| KR101246241B1 (ko) | 2009-04-24 | 2013-03-22 | 니뽄 덴신 덴와 가부시키가이샤 | 암호화 장치, 복호장치, 암호화 방법, 복호방법, 세큐러티 방법, 프로그램 및 기록매체 |
| CN102484586B (zh) * | 2009-08-03 | 2014-12-03 | 日本电信电话株式会社 | 函数密码应用系统及方法 |
-
2011
- 2011-07-22 WO PCT/JP2011/066692 patent/WO2012011564A1/ja not_active Ceased
- 2011-07-22 CN CN201180034973.1A patent/CN103004129B/zh active Active
- 2011-07-22 EP EP11809734.4A patent/EP2597812B1/en active Active
- 2011-07-22 JP JP2012525440A patent/JP5466763B2/ja active Active
- 2011-07-22 ES ES11809734.4T patent/ES2686426T3/es active Active
- 2011-07-22 US US13/703,381 patent/US8897442B2/en active Active
- 2011-07-22 KR KR1020127034442A patent/KR101478766B1/ko active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP2597812A4 (en) | 2016-09-28 |
| JPWO2012011564A1 (ja) | 2013-09-09 |
| WO2012011564A1 (ja) | 2012-01-26 |
| US8897442B2 (en) | 2014-11-25 |
| EP2597812A1 (en) | 2013-05-29 |
| KR20130024931A (ko) | 2013-03-08 |
| EP2597812B1 (en) | 2018-06-20 |
| CN103004129A (zh) | 2013-03-27 |
| JP5466763B2 (ja) | 2014-04-09 |
| KR101478766B1 (ko) | 2015-01-02 |
| US20130083921A1 (en) | 2013-04-04 |
| CN103004129B (zh) | 2015-04-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2686426T3 (es) | Dispositivo de encriptación, dispositivo de desencriptación, método de encriptación, método de desencriptación, programa y medio de grabación | |
| US8515060B2 (en) | Encryption apparatus, decryption apparatus, encryption method, decryption method, security method, program, and recording medium | |
| KR101351787B1 (ko) | 정보 생성 장치, 정보 생성 방법, 및 컴퓨터 판독가능 기록 매체 | |
| ES2532332T3 (es) | Sistema de compartición de secretos, aparato de compartición, aparato de gestión de partes, aparato de adquisición, métodos de procesamiento de los mismos, método de compartición de secretos, programa y medio de grabación | |
| KR101456579B1 (ko) | 비밀 분산 시스템, 분산 장치, 분산 관리 장치, 취득 장치, 비밀 분산 방법, 프로그램, 및 기록 매체 | |
| Cheon et al. | Cryptanalysis of the new CLT multilinear map over the integers | |
| Huo et al. | KP-ABE with attribute extension: towards functional encryption schemes integration | |
| Sepehri et al. | An efficient cryptography-based access control using inner-product proxy re-encryption scheme | |
| Freeman | Homomorphic encryption and the BGN cryptosystem |