ES2496740T3 - Aparato de codificación, aparato de descodificación, método de codificación, método de descodificación, método y programa de seguridad y medio de almacenamiento - Google Patents
Aparato de codificación, aparato de descodificación, método de codificación, método de descodificación, método y programa de seguridad y medio de almacenamiento Download PDFInfo
- Publication number
- ES2496740T3 ES2496740T3 ES10767167.9T ES10767167T ES2496740T3 ES 2496740 T3 ES2496740 T3 ES 2496740T3 ES 10767167 T ES10767167 T ES 10767167T ES 2496740 T3 ES2496740 T3 ES 2496740T3
- Authority
- ES
- Spain
- Prior art keywords
- function
- value
- text
- elements
- symmetric key
- 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
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- 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
-
- 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/0825—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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Un aparato (110, 210) de codificación (encriptación), que comprende: una unidad (112b) de codificación de clave simétrica adaptado para calcular un texto codificado C1, introduciendo un de texto no codificado M y una clave simétrica K a una función de codificación de clave simétrica y para sacar el texto codificado C1; una unidad (112c, 212c) de operación de función adaptada para calcular un valor de función de una función H resistente a colisiones introduciendo un valor que contiene un valor correspondiente a la clave simétrica K y un valor correspondiente al texto codificado C1 a la función H; y una unidad (112f) de operación vectorial adaptada para calcular un segundo texto codificado C2 >= r.(Σ>=1 n vμ.bμ) + ρ .bn+1 Ε G1 n+1 usando un valor r correspondiente al valor de función de la función H, un valor ρ correspondiente a la clave simétrica K, elementos vμ donde μ >= 1, ..., n y n >= 1 de un vector n-dimensional v >= (v1, ..., vn), y vectores base n+1 dimensionales bi Ε G1 n+1, donde i >= 1, ..., n+1, compuestos de n+1 elementos de un grupo cíclico G1 y para sacar el texto codificado C2.
Description
5
10
15
20
25
30
35
40
45
50
55
60 E10767167
27-08-2014
Aparato de codificación, aparato de descodificación, método de codificación, método de descodificación, método y programa de seguridad y medio de almacenamiento
CAMPO TÉCNICO La presente invención se refiere a técnicas de seguridad y, más específicamente, a una técnica criptográfica.
ANTECEDENTES DE LA TÉCNICA Los temas que se han estudiado en el campo de la criptografía incluyen un esquema criptográfico seguro contra ataques de textos codificados seleccionados (Chosen Ciphertext Attacks, CCA). Recientemente, han aumentado los estudios del esquema criptográfico seguro contra CCA, basado en un esquema de codificación (encriptación) basado en la identidad (Identity-Based Encryption, IBE) (consúltese, por ejemplo, la bibliografía no patente 1), que normalmente es seguro contra ataques de textos no codificados seleccionados (Chosen Plaintext Attacks, CPA). En la bibliografía no patente 2, por ejemplo, se propone un método de transformación CHK. En el método de transformación CHK, se usa un esquema de firma de un solo uso (“one-time”) para construir el esquema criptográfico seguro contra CCA, basado en el esquema IBE seguro contra CPA. En la bibliografía no patente 3, por ejemplo, se propone un método de transformación BK. En el método de transformación BK, se usan un código de autenticación de mensajes (Message Authentication Code, MAC) y un esquema de compromiso de bit para construir el esquema criptográfico seguro contra CCA, basado en el esquema IBE seguro contra CPA.
En la bibliografía no patente 4, que ha sido publicada después de la fecha de prioridad de la presente solicitud, se propone un esquema de un mecanismo de encapsulación de clave (Key Encapsulation Mechanism, KEM) usando una codificación de predicado con producto interno.
Según la bibliografía no patente 5, la seguridad contra CCA se garantiza partiendo de una codificación simétrica segura contra CCA y un esquema de encapsulación de clave seguro contra CCA.
La bibliografía no patente 6 describe un sistema de codificación de predicado que permite delegar una capacidad de evaluar uno o más predicados en datos codificados en la forma de una capacidad más restrictiva.
BIBLIOGRAFÍA DE LA TÉCNICA ANTERIOR
BIBLIOGRAFÍA NO PATENTE
Bibliografía no patente 1: D. Boneh, M. Franklin, "Identity-Based encryption from the Weil pairing", Crypto
2001, Lecture Notes in Computer Science, vol. 2139, Springer-Verlag, pp 213-229, 2001.
Bibliografía no patente 2: R. Canetti, S. Halevi, J. Katz, "Chosen-Ciphertext Security from Identity-Based
Encryption", Proc. Of EUROCRYPT '04, LNCS 3027, pp 207-222, 2004.
Bibliografía no patente 3: D. Boneh, J. Katz, "Improved Efficiency for CCA-Secure Cryptosystems Built Using
Identity-Based Encryption", Proc. of CT-RSA '05, LNCS 3376, pp 87-103, 2005.
Bilbiografía no patente 4: T. Okamoto, K. Takashima, “Hierarchical Predictive Encryption for Inner-Products”,
Proc. Of ASIACRYPT 2009, LNCS 5912, páginas 214-213, 2009.
Bibliografía no patente 5: R. Cramer, V. Shoup, “Design and Analysis of Practical Public-Key Encryption
Schemes Secure against Adaptive Chosen Ciphertext Attack”, SIAM Journal on Computing, Volumen 33,
Número 1, páginas 167-226, 2004
Bibliografía no patente 6: E. Shi, B. Waters, “Delegating Capabilities in Predicate Encryption Systems”, Proc.
Of ICALP 2008, Parte II, páginas 560-578, 2008.
EXPOSICIÓN DE LA INVENCIÓN
PROBLEMAS A RESOLVER POR LA INVENCIÓN El texto codificado en el método de transformación CHK incluye el texto codificado, una firma de un solo uso del texto codificado, y una clave de verificación de la firma de un solo uso. Por consiguiente, su espacio de texto codificado incluye no sólo el espacio de texto codificado, sino también el espacio de firma de un solo uso y el espacio de la clave de verificación. El texto codificado generado en el método de transformación BK incluye el texto codificado, el MAC y la cadena de compromiso de bit. Por consiguiente, su espacio de texto codificado incluye no sólo el espacio de texto codificado, sino también el espacio de MAC y el espacio de cadena de compromiso de bit. Esto significa que los espacios de texto codificado en el método de transformación CHK y el método de transformación BK incluyen espacios bi-dimensiones adicionales para la seguridad contra CCA. Sin embargo, conforme aumenta el espacio de texto codificado, aumentan la cantidad de cálculos y la cantidad de datos. Por lo tanto, el espacio de texto codificado debería ser pequeño.
5
10
15
20
25
30
35
40
45
50
55
60 E10767167
27-08-2014
En el esquema IBE, la parte que realiza la codificación debe especificar el ID de la parte que realiza la descodificación (desencriptación) antes de proceder a realizar la codificación. Sería conveniente, sin embargo, que la parte que realiza la codificación pueda generar texto codificado sin especificar la parte que realizará la descodificación, y que una parte que satisface unas condiciones determinadas pueda descodificar (desencriptar) el texto codificado.
En vista de lo indicado anteriormente, el esquema criptográfico de la presente invención es muy conveniente y mejora el nivel de seguridad contra CCA sin espacio adicional para la seguridad contra CCA.
MEDIOS PARA RESOLVER LOS PROBLEMAS El método de codificación según la presente invención incluye al menos las etapas siguientes: primero, se calcula un texto codificado C1 introduciendo un texto no codificado M y una clave simétrica K a una función de codificación de clave simétrica; se calcula un valor de función de una función H resistente a colisiones introduciendo un valor que contiene un valor correspondiente a la clave simétrica K y un valor correspondiente al primer texto codificado C1
n
a la función H; y se calcula un segundo texto codificado C2 = r.(∑µ=1 vµ.bµ) + ρ.bn+1 Є G1n+1 usando un valor r correspondiente al valor de función de la función H, un valor ρ correspondiente a la clave simétrica K, los elementos
n+1 (i
vµ (µ = 1, ..., n, n ≥ 1) de un vector n-dimensional v‚= (v1, ..., vn), y los vectores base n+1 dimensionales bi Є G1 = 1, ..., n+1), compuestos de n+1 elementos de un grupo cíclico G1.
El procedimiento de descodificación correspondiente al procedimiento de codificación incluye al menos las etapas siguientes: se calcula un valor de función S ~ = e(C2, D1*) Є GT introduciendo el segundo texto codificado C2 Є G1n+1
n
y la información de clave D1* = α.(∑µ=1 wµ.bµ*) + bn+1* Є G2n+1 a una función e bilineal; y se calcula un valor de función de la función H resistente a colisiones introduciendo un valor correspondiente al valor de función S ~ y el texto codificado C1 a la función H. Si la información D1* de clave es correcta, el valor correspondiente al valor S ~ de función es igual al valor correspondiente a la clave simétrica K, que se introdujo a la función H resistente a
ρ ~~
colisiones en el procedimiento de codificación. A continuación, se determina si un valor , un valor r correspondiente al valor de función de la función H, los elementos vµ del vector v• n-dimensional, y los vectores
n n+1
base bi Є G1n+1 (i = 1, ..., n+1) cumplen C2 = r ~.(∑µ=1 vµ.bµ) + ρ ~.bn+1 Є G1 .
El valor r usado en el procedimiento de codificación corresponde al valor de función obtenido al introducir el valor que contiene el valor correspondiente a la clave simétrica K y el valor correspondiente al primer texto codificado C1 a la función H resistente a colisiones. Por consiguiente, el valor r depende del primer texto codificado C1 y la clave simétrica K. Incluso si un atacante que no conoce la clave simétrica K puede generar el primer texto codificado C1 a partir del primer texto C1’ codificado obtenido correctamente, en el que el texto codificado C1 es diferente del texto codificado C1’, el atacante no puede generar un valor r correcto correspondiente al primer texto codificado C1 generado. Por lo tanto, la seguridad contra CCA puede ser mejorada mediante la recuperación de un valor r ~ introduciendo el primer texto codificado C1 y un valor correspondiente al valor de función S ~ a la función H resistente
n
a colisiones y determinando si se cumple o no C2 = r~.(∑µ=1 vµ.bµ) + ρ ~.bn+1 Є G1n+1, en el procedimiento de descodificación.
Un valor 2 que corresponde a un valor 1 significa que el valor 2 es igual al valor 1 o el valor 2 depende de al menos el valor 1.
n
El segundo texto codificado C2 = r.(∑µ=1 vµ.bµ) + ρ.bn+1 Є G1n+1 está formado justo por un espacio n dimensional para un vector n-dimensional v• = (v1, ..., vn), que es el componente básico del segundo texto codificado C2, y un espacio unidimensional para el valor ρ correspondiente a un valor que contiene la clave simétrica K. Esto significa que el segundo texto codificado C2 no requiere un espacio usado sólo para mejorar la seguridad contra la CCA.
En un ejemplo del procesamiento de codificación según la presente invención, el primer texto codificado C1 se calcula introduciendo el texto no codificado M y la clave simétrica K a la función de codificación de clave simétrica; los valores r y ρ se calculan introduciendo la clave simétrica K y el primer texto codificado C1 a la función H resistente a colisiones; se calcula el valor de función S = gT τ.ρЄ GT, en la que τ es una constante diferente a un elemento de identidad aditivo; se calcula un valor OR exclusivo de la clave simétrica K y un valor de función R(S), que es una secuencia binaria obtenida introduciendo el valor de función S a una función R inyectiva, como un tercer
n n+1
texto codificado C3; y se calcula el segundo texto codificado C2 = r.(∑µ=1 vµ.bµ) + ρ.bn+1 Є G1 .
En el procesamiento de descodificación correspondiente al procesamiento de codificación, por ejemplo, se calcula el valor de función S ~ = e(C2, D1*) Є GT introduciendo el segundo texto codificado C2 Є G1n+1 y la información de clave D1* a la función e bilineal; se calcula un valor OR exclusivo K ~ del tercer texto codificado C3 y el valor de función R(S ~), que es una secuencia binaria obtenida introduciendo el valor de función S ~ a la función R inyectiva; los valores r ~ y ρ ~ se calculan introduciendo el valor OR exclusivo K ~ y el primer texto codificado C1 a la función H
~n
resistente a colisiones; se calcula un valor de función C2 = r ~.(∑µ=1 vµ.bµ) + ρ ~.bn+1 Є G1n+1; se determina si el valor 3
E10767167
27-08-2014
de función C2~ es igual al segundo texto codificado C2; cuando la determinación indica que el valor de función C2~ es igual al segundo texto codificado C2, se calcula un valor descodificado M ~ usando el valor OR exclusivo K ~ como K~
una clave simétrica e introduciendo el valor OR exclusivo y el texto codificado C1 a una función de descodificación de clave simétrica. 5
τ.ρЄ
En otro ejemplo del procedimiento de codificación, se selecciona el valor ρ; se calcula el valor de función S = gT GT, en la que τ es una constante diferente a un elemento de identidad aditivo; se calcula el primer texto codificado C1 usando el valor de función R(S) obtenido introduciendo el valor de función S a la función R inyectiva, como la clave simétrica K, e introduciendo la clave simétrica K y el texto no codificado M a la función de codificación de
10 clave simétrica; se calcula el valor r introduciendo el valor de función S y el primer texto codificado C1 a la función H
n n+1
resistente a colisiones; y se calcula el segundo texto codificado C2 = r.(∑µ=1 vµ.bµ) + ρ.bn+1 Є G1 .
En el procesamiento de descodificación correspondiente al procesamiento de codificación, por ejemplo, el valor de función S ~ = e(C2, D1*) Є GT se calcula introduciendo el segundo texto codificado C2 Є G1n+1 y la información de 15 clave D1* a la función e bilineal; el valor r ~ se calcula introduciendo el valor de función S ~ y el texto codificado C1 a la
n
función H resistente a colisiones; un valor de función λ = C2-r ~.(∑µ=1 vµ.bµ) Є G1n+1 se calcula usando el segundo texto codificado C2, el valor r ~ y los elementos vµ (µ = 1, ..., n) del vector n-dimensional v‚; un valor de función e(λ, D2*) se calcula introduciendo el valor de función λ, y la información de clave auxiliar D2* = ∑µ=1 nβµ.bµ* a la función e bilineal; se determina si el valor de función e (λ, D2*) cumple e(λ, D2*) = 1 Є GT; y si la determinación indica que se
20 cumple (λ, D2*) = 1 Є GT, el valor descodificado M~ se calcula usando el valor de función R(S ~) obtenido introduciendo el valor de función S ~ a la función R inyectiva, como la clave simétrica K ~, e introduciendo la clave simétrica K ~ y el primer texto codificado C1 a la función de descodificación de clave simétrica.
Los ejemplos preferidos de la función R inyectiva y la función H resistente a colisiones son funciones cuasi 25 aleatorias. Esto mejorará el nivel de seguridad.
EFECTOS DE LA INVENCIÓN Tal como se ha descrito anteriormente, el esquema criptográfico de la presente invención es muy conveniente y proporciona una mejora del nivel de seguridad contra CCA sin espacio adicional para la seguridad contra CCA.
30
BREVE DESCRIPCIÓN DE LOS DIBUJOS La Figura 1 es una vista que ilustra la estructura de un sistema criptográfico según una primera realización; La Figura 2 es una vista que ilustra la estructura de un aparato de codificación en la Figura 1; La Figura 3 es una vista que ilustra la estructura de un aparato de descodificación en la Figura 1;
35 La Figura 4 es una vista que ilustra la estructura de un aparato de generación de claves en la Figura 1; La Figura 5 es una vista que ilustra el procesamiento de codificación según la primera realización; La Figura 6 es una vista que ilustra el procesamiento de generación de información de claves en la primera realización; La Figura 7 es una vista que ilustra el procesamiento de descodificación según la primera realización;
40 La Figura 8 es una vista que ilustra la estructura de un sistema criptográfico según una segunda realización; La Figura 9 es una vista que ilustra la estructura de un aparato de codificación en la Figura 8; La Figura 10 es una vista que ilustra la estructura de un aparato de descodificación en la Figura 8; La Figura 11 es una vista que ilustra la estructura de un aparato de generación de claves en la Figura 8; La Figura 12 es una vista que ilustra el procesamiento de codificación según la segunda realización;
45 La Figura 13 es una vista que ilustra el procesamiento de generación de información de claves en la segunda realización; y La Figura 14 es una vista que ilustra el procesamiento de descodificación según la segunda realización.
DESCRIPCIÓN DETALLADA DE LAS REALIZACIONES 50 Se describirán las realizaciones de la presente invención.
Definiciones En primer lugar, se describirán los términos y los símbolos que se usarán en las realizaciones.
55 Matriz: Una matriz representa un arreglo rectangular de elementos de un conjunto en el que se define una operación. No sólo pueden formar la matriz los elementos de un anillo, sino también los elementos de un grupo.
(·)T: (·)T representa una matriz transpuesta de "·". (·)-1: (·)-1 representa una matriz inversa de "·". 60 ^: ^ representa el operador AND lógico.
v: v representa el operador OR lógico.
Z: Z representa un conjunto de números enteros. 4
E10767167
27-08-2014
k: k representa un parámetro de seguridad (k Є Z, k > 0).
{0, 1}*: {0, 1}* representa una secuencia binaria que tiene una longitud de bits deseada. Un ejemplo de secuencia binaria es una secuencia formada por números enteros 0 y 1. Sin embargo, {0, 1}* no se limita a secuencias 5 formadas por números enteros 0 y 1. {0, 1}* puede ser un campo finito de orden 2 o su campo de extensión.
{0, 1}ζ: {0, 1}ζ representa una secuencia binaria que tiene una longitud de bits ζ (ζЄ Z, ζ > 0). Un ejemplo de ello es una secuencia formada por números enteros 0 y 1. Sin embargo, {0, 1}ζ no se limita a secuencias formadas por números enteros 0 y 1. {0, 1}ζ puede ser un campo finito de orden 2 (cuando ζ = 1) o su campo de extensión
10 (cuando ζ > 1).
(+): (+) representa un operador OR exclusivo entre secuencias binarias. Por ejemplo, se cumple lo siguiente: 10110011 (+) 11100001 = 01010010.
15 Fq: Fq representa un campo finito de orden q, donde q es un número entero igual o mayor que 1. Por ejemplo, el orden q es un número primo o una potencia de un número primo. En otras palabras, el campo Fq finito es un campo de números primos o un campo de extensión sobre el campo de números primos, por ejemplo. Las operaciones en el campo Fq finito de números primos pueden definirse fácilmente como operaciones de módulo con el orden q como módulo, por ejemplo. Las operaciones en el campo Fq de extensión pueden definirse fácilmente como
20 operaciones de módulo con un polinomio irreducible como módulo, por ejemplo. Las estructuras específicas del campo Fq finito se describen, por ejemplo, en la bibliografía de referencia 1, "ISO/IEC 18033-2: Information technology – Security techniques – Encryption algorithms – Part 2: Asymmetric ciphers”.
0F: 0F representa un elemento identidad aditivo del campo Fq finito.
25 1F: 1F representa un elemento identidad multiplicativo del campo Fq finito. δ(i, j): δ(i, j) representa una función delta de Kronecker. Cuando i = j, δ(i, j) = 1F. Cuando i ≠ j, δ(i, j) = 0F.
E: E representa una curva elíptica sobre el campo Fq finito. E se define como un conjunto que tiene un punto OR
específico denominado un punto en el infinito y otros puntos (x, y) de x, y Є Fq que cumplen la siguiente ecuación de 30 Weierstrass sobre coordenadas afines:
35
, en la que a1, a2, a3, a4, a6 Є Fq. Puede definirse una operación "+" binaria denominada una adición de curvas elípticas para dos puntos cualesquiera sobre la curva elíptica E, y puede definirse una operación unaria "-" denominada una inversa aditiva para cualquier punto de la curva elíptica E. Es bien sabido que un conjunto finito de 40 puntos racionales sobre la curva elíptica E forma un grupo con respecto a la adición de curvas elípticas. También es bien sabido que puede definirse una operación denominada una multiplicación escalar de curvas elípticas con la adición de curvas elípticas. También es bien conocido un procedimiento de operación específico de las operaciones elípticas, tales como la adición de curvas elípticas, en un ordenador (por ejemplo, véase la bibliografía de referencia 1, la bibliografía de referencia 2, “RFC 5091: Identity-Based Cryptography Standard (IBCS) #1: Supersingular Curve
45 Implementations of the BF and BB1 Cryptosystems”, y la bibliografía de referencia 3, Ian F. Blake, Gadiel Seroussi y Nigel P. Smart, "Elliptic Curves in Cryptography", Pearson Education, ISBN 4-89471-431-0).
Un conjunto finito de puntos racionales sobre la curva elíptica E tiene un subgrupo de orden p (p ≥ 1). Por ejemplo, un conjunto finito E[p] de los puntos p-división sobre la curva elíptica E forma un subgrupo de los puntos racionales
50 sobre la curva elíptica, donde #E representa el número de elementos del conjunto finito de los puntos p-división sobre la curva elíptica E y #E es divisible por el número primo p grande. Los puntos p-división sobre la curva elíptica E son puntos A sobre la curva elíptica E que cumplen las multiplicaciones escalares p.A = O de curvas elípticas.
G1, G2, GT: G1, G2, GT representan grupos cíclicos de orden q, respectivamente. Los ejemplos de grupos cíclicos G1
55 y G2 incluyen el conjunto finito E[p] de los puntos p-división sobre la curva E elíptica y sus subgrupos. G1 puede ser igual a G2 o G1 puede ser diferente de G2. Los ejemplos del grupo cíclico GT incluyen un conjunto finito que forma un campo de extensión sobre el campo Fq finito. Un ejemplo específico del mismo es un conjunto finito de la raíz pésima de 1 sobre la clausura algebraica del campo Fq finito.
60 En las realizaciones, las operaciones definidas sobre los grupos cíclicos G1 y G2 se expresan de manera aditiva, y una operación definida sobre el grupo cíclico GT se expresa de manera multiplicativa. Más específicamente, χ.ΩЄ G1 para χЄ Fq y ΩЄ G1 significa que la operación definida en el grupo cíclico G1 es aplicada a ΩЄ G1, χ veces, y
E10767167
27-08-2014
Ω1+ Ω2 Є G1 para Ω1, Ω2 Є G1 significa que la operación definida en el grupo cíclico G1 es aplicada a Ω1 Є G1 y Ω2 Є G1. De la misma manera, χ.ΩЄ G2 para χЄ Fq y ΩЄ G2 significa que la operación definida en el grupo cíclico G2 se aplica a ΩЄ G2, χ veces, y Ω1+ Ω2 Є G2 para Ω1, Ω2 Є G2 significa que la operación definida en el grupo cíclico G2 se aplica a Ω1 Є G2 y Ω2 Є G2. Por el contrario, Ωχ Є GT para χЄ Fq y ΩЄ GT significa que la operación definida
5 en el grupo cíclico GT se aplica a ΩЄ GT, χ veces, y Ω1, Ω2 Є GT para Ω1, Ω2 Є GT significa que la operación definida en el grupo cíclico GT se aplica a Ω1 Є GT y Ω2 Є GT.
G1n+1: G1n+1 representa un producto directo de (n+1) grupos cíclicos G1 (n ≥ 1). G2n+1: G2n+1 representa un producto directo de (n+1) grupos cíclicos G2. 10 g1, g2, gT: g1, g2, gT representan generadores de los grupos cíclicos G1, G2, GT, respectivamente.
V: V representa un espacio vectorial (n+1)-dimensional formado por el producto directo de los (n+1) grupos cíclicos G1. V*: V* representa un espacio vectorial (n+1)-dimensional formado por el producto directo de los (n+1) grupos cíclicos G2.
15
e: e representa una función (denominada en adelante "función bilineal") para calcular un mapa bilineal no degenerado que mapea el producto G1n+1 x G2n+1 del producto directo G1n+1 y el producto directo G2n+1 al grupo cíclico GT. La función e bilineal saca un elemento del grupo cíclico GT en respuesta a la introducción de (n+1) elementos γL (L = 1, ..., n+1) (n ≥ 1) del grupo cíclico G1 y (n+1) elementos γL* (L = 1, ..., n+1) del grupo cíclico G2.
20
25 La función e bilineal satisface las características siguientes:
n+1 n+1
-Bilinealidad: La siguiente relación se cumple para todos Γ1 Є G1 , Γ2 Є G2 y ν, κЄ Fq
- -No degeneración: Esta función no mapea todo
- 35
- 40
- sobre el elemento identidad del grupo cíclico GT. -Computabilidad: Existe un algoritmo para calcular de manera eficiente e(Γ1, Γ2) para todos Γ1 Є G1 n+1 , Γ2 Є G2 n+1 .
- 45
- En las realizaciones, la función e bilineal está formada siguiendo una función bilineal no degenerada que mapea el producto directo G1 x G2 de los grupos cíclicos G1 y G2 al grupo cíclico GT.
50 La función e bilineal saca un elemento del grupo cíclico GT en respuesta a un vector (n+1) dimensional (γ1, ..., γn+1) de entrada formado por (n+1) elementos γL (L = 1, ..., n+1) del grupo cíclico G1 y un vector (n+1) dimensional (γ1*, ..., γn+1*) formado por (n+1) elementos γL* (L = 1, ..., n+1) del grupo cíclico G2.
La función Par bilineal saca un elemento del grupo cíclico GT en respuesta a un elemento de entrada del grupo cíclico G1 y un elemento de entrada del grupo cíclico G2, y satisface las características siguientes:
-Bilinealidad: La siguiente relación se cumple para todos Ω1 Є G1, Ω2 Є G2, y ν, κЄ Fq
E10767167
27-08-2014
-No degeneración: Esta función no asigna todo
10
sobre el elemento de identidad del grupo cíclico GT.
-Computabilitidad: Existe un algoritmo para calcular de manera eficiente Par(Ω1, Ω2) para todos Ω1 Є G1, Ω2 Є G2.
15 Un ejemplo específico de la función Par bilineal es una función para realizar una computación de emparejamiento, tal como el emparejamiento Weil o el 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, pp 61-81, por ejemplo). Dependiendo del tipo de la curva elíptica E, puede usarse una función de emparejamiento modificada
20 e(Ω1, phi(Ω2)) (Ω1 Є G1, Ω2 Є G2) que es una combinación de una función phi predeterminada y la función de computación de emparejamiento, tal como el emparejamiento Tate, puede usarse como la función bilineal Par(véase la bibliografía de referencia 2, por ejemplo). Como el algoritmo para realizar un cálculo de emparejamiento en un ordenador, puede usarse el algoritmo Miller (véase la bibliografía de referencia 5, V. S. Miller, "Short Programs for Functions on Curves”, 1986, http://crypto.stanford.edu/miller/miller.pdf) o algún otro algoritmo
25 conocido. Los métodos de formación de un grupo cíclico y una curva elíptica para el cálculo de emparejamiento efectivo son bien conocidos (por ejemplo, véase la bibliografía de referencia 2, descrita anteriormente, la bibliografía de referencia 6, A. Miyaji, M. Nakabayashi y S. Takano, "New Explicit Conditions of Elliptic Curve Traces for FR-Reduction", IEICE Trans. Fundamentals, vol. E84-A, Nº 5, pp 1234-1243, Mayo de 2001, la bibliografía de referencia 7, P. S. L. M. Barreto, B. Lynn, M. Scott, "Constructing Elliptic Curves with Prescribed Embedding Degrees", Proc.
30 SCN '2002, LNCS 2576, pp 259-267, Springer-Verlag. 2003, y la bibliografía de referencia 8, R. Dupont, A. Enge, F. Morain, "Building Curves with Arbitrary Small MOV Degree over Finite Primer Fields", http://eprint.iacr.org/2002/094/).
ai (i = 1, ..., n+1): ai (i = 1, ..., n+1) representan vectores base (n+1) dimensionales que tienen (n+1) elementos del
35 grupo cíclico G1 como elementos. Por ejemplo, cada uno de los vectores base ai es el vector (n+1) dimensional en el que el i-ésimo elemento es κ1-g1 Є G1 y el resto de los elementos son elementos identidad (cada uno de los cuales se expresa de manera aditiva como "0") del grupo cíclico G1. En ese caso, los elementos de los vectores base (n+1)-dimensionales ai (i = 1, ..., n+1) pueden enumerarse de la siguiente manera:
40
45
50
Aquí, κ1 es una constante que es un elemento del campo Fq finito diferente al elemento de identidad aditivo 0F. Un ejemplo de κ1 Є Fq es κ1 = 1F. Los vectores base ai son bases ortogonales. Cada vector (n+1) dimensional que tiene (n+1) elementos del grupo cíclico G1 como elementos está expresado mediante una combinación lineal de los
55 vectores base (n+1) dimensionales ai (i = 1, ..., n+1). Es decir, los vectores base (n+1) dimensionales ai generan el espacio vectorial V, descrito anteriormente.
ai* (i = 1, ..., n+1): ai* (i = 1, ..., n+1) representa vectores base (n+1) dimensionales que tienen (n+1) elementos del grupo cíclico G2 como elementos. Por ejemplo, cada uno de los vectores base ai* es el vector (n+1) dimensional en
60 el que el i-ésimo elemento es κ2-g2 Є G2 y el resto de elementos son elementos identidad (cada uno de los cuales se expresa de manera aditiva como "0") del grupo cíclico G2. En ese caso, los elementos de los vectores base (n+1) dimensionales ai* (i = 1, ..., n+1) pueden enumerarse de la siguiente manera:
E10767167
27-08-2014
5
10
Aquí, κ2 es una constante que es un elemento del campo Fq finito diferente del elemento identidad aditivo 0F. Un
15 ejemplo de κ2 Є Fq es κ2 = 1F. Los vectores base ai* son bases ortogonales. Cada vector (n+1) dimensional que tiene (n+1) elementos del grupo cíclico G2 como elementos se expresa mediante una combinación lineal de vectores base (n+1) dimensionales ai* (i = 1, ..., n+1). Es decir, los vectores base (n+1) dimensionales ai* generan el espacio vectorial V*, descrito anteriormente.
20 Los vectores base ai y los vectores base ai* cumplen la siguiente expresión para un elemento τ = κ1.κ2 del campo Fq finito diferente de 0F:
25 Cuando i = j, la siguiente expresión se cumple a partir de las expresiones (6) y (7). e(ai, aj*) = Par(κ1.g1, κ2.g2).Par(0, 0). … Par(0, 0)
30 = Par(g1, g2)κ2.κ2.Par(g1, g2)0.0. … .Par(g1, g2)0.0 = Par(g1, g2)κ1.κ2 = gT ζ
35 Cuando i ≠ j, e(ai, aj*) no incluye Par (κ1.g1, κ2.g2) y es el producto de Par (κ1.g1, 0 ), el Par(0, κ2.g2) y el Par (0, 0). Además, la siguiente expresión se satisface a partir de la expresión (7). Par(g1, 0) = Par (0, g2) = Par (g1, g2)0 40 Por lo tanto, cuando i ≠ j, se cumple la siguiente expresión. e(ai, aj*) = e(g1, g2)0 =gT0 Especialmente cuando τ = κ1.κ2 = 1F (por ejemplo, κ1= κ2 = 1F), se satisface la siguiente expresión. 45
50 Aquí, gT0 = 1 es el elemento identidad del grupo cíclico GT, y gT1 =gT es un generador del grupo cíclico GT. En ese caso, los vectores base ai y los vectores base ai* son bases ortogonales normales duales, y el espacio vectorial V y el espacio vectorial V* son un espacio vectorial dual en el que puede definirse una aplicación bilineal (espacio vectorial de emparejamiento dual (DPVS)).
55 A: "A" representa una matriz de (n+1) filas por (n+1) columnas que tiene los vectores base ai (i = 1, ..., n+1) como elementos.
Cuando los vectores base ai (i = 1, ..., n+1) se expresan mediante la expresión (9), por ejemplo, la matriz A es la siguiente:
60
E10767167
27-08-2014
A*: "A*" representa una matriz de (n+1) filas por (n+1) columnas que tiene los vectores base ai* (i = 1, ..., n+1) como 10 elementos.
Cuando los vectores base ai* (i = 1, ..., n+1) se expresan mediante la expresión (10), por ejemplo, la matriz A* es la siguiente:
25 X: X representa una matriz de (n+1) filas por (n+1) columnas que tiene elementos del campo Fq finito como entradas. La matriz X se usa para la transformación de coordenadas de los vectores base ai. La matriz X es como sigue:
30
35
, en la que cada χi, j Є Fq es la entrada en la i-ésima fila y la j-ésima columna (i = 1, ..., n+1, j = 1, .. ., n+1) de la 40 matriz X.
Aquí, cada entrada χi, j de la matriz X se denomina coeficiente de transformación.
X*: X* representa la matriz transpuesta de la matriz inversa de la matriz X. X* = (X-1)T. La matriz X* se usa para la 45 transformación de coordenadas de los vectores base ai*. La matriz X* se expresa como sigue:
- 55
- en la que la entrada en la i-ésima fila y la j-ésima columna de la matriz X* es χi, j * Є Fq.
- 60
- Aquí, cada entrada χi,j* de la matriz X * se denomina coeficiente de transformación. En ese caso, se cumple X.(X*)T = I, en la que "I" representa una matriz unidad de (n+1) filas y (n+1) columnas.
E10767167
27-08-2014
En otras palabras, la matriz unidad se expresa como sigue.
5
10
15 Se cumple la siguiente expresión.
Aquí, se definirán a continuación vectores (n+1) dimensionales.
45 El producto interno de los vectores (n+1) dimensionales χi • y χj ‚* satisface la siguiente expresión a partir de la expresión (18).
- 50
- 55
- bi: bi representan vectores base (n+1) dimensionales que tienen (n+1) elementos del grupo cíclico G1 como elementos. Los vectores base bi se obtienen mediante transformación de coordenadas de los vectores base ai (i = 1, ..., n+1) con la matriz X. Es decir, los vectores base bi se obtienen mediante el cálculo siguiente.
60 Cuando los vectores base aj (j = 1, ..., n+1) se expresan mediante la expresión (9), cada elemento de los vectores base bi se muestra a continuación.
E10767167
27-08-2014
Cada vector (n+1) dimensional que tiene (n+1) elementos del grupo cíclico G1 como elementos se expresa 5 mediante una combinación lineal de los vectores básicos (n+1) dimensionales bi (i = 1, ..., n+1). Es decir, los vectores base (n+1) dimensionales bi generan el espacio vectorial V, descrito anteriormente.
bi*: bi* representa vectores base (n+1) dimensionales que tienen (n+1) elementos del grupo cíclico G2 como elementos. La vectores base bi* se obtienen mediante transformación de coordenadas de los vectores base ai* (i = 10 1, ..., n+1) con la matriz X*. Es decir, los vectores base bi* se obtienen mediante el cálculo siguiente.
15 Cuando los vectores base aj (j = 1, ..., n+1) se expresan mediante la expresión (10), cada elemento de los vectores base bi* se muestran a continuación.
Cada vector (n+1) dimensional que tiene (n+1) elementos del grupo cíclico G2 como elementos se expresa mediante una combinación lineal de vectores base (n+1) dimensionales bi* (i = 1,. .., n+1). Es decir, los vectores 25 base (n+1) dimensionales bi* generan el espacio vectorial V*, descrito anteriormente.
Los vectores base bi y los vectores base bi* cumplen la siguiente expresión para los elementos τ = κ1.κ2 del campo Fq finito diferente de 0F:
30
La siguiente expresión se cumple a partir de las expresiones (6), (21), (23) y (25). 35
55
Especialmente cuando τ = κ1. κ2 = 1F (por ejemplo, κ1= κ2 = 1F), se satisface la expresión siguiente.
60
E10767167
27-08-2014
En ese caso, los vectores base bi y los vectores base bi* son la base ortogonal normal dual de un espacio vectorial de emparejamiento dual (el espacio vectorial V y el espacio vectorial V*).
Siempre y cuando se cumpla la expresión (26), pueden usarse vectores base ai y ai* diferentes a los mostrados en 5 las expresiones (9) y (10) como ejemplos, y vectores base bi y bi* diferentes a los mostrados en las expresiones
(22) y (24) como ejemplos.
B: B representa una matriz de (n+1) filas por (n+1) columnas que tiene los vectores base bi (i = 1, ..., n+1) como elementos.
10 Se cumple B = X·A. Cuando los vectores base bi se expresan mediante la expresión (23), por ejemplo, la matriz B es la siguiente:
30
B*: B* representa una matriz de (n+1) filas por (n+1) columnas que tiene los vectores base bi* (i = 1, ..., n+1) como elementos.
35 Se cumple B* = X*·A*. Cuando los vectores base bi* (i = 1, ..., n+1) se expresan mediante la expresión (25), por ejemplo, la matriz B* es como se indica a continuación:
W‚:W• representa un vector n-dimensional que tiene elementos del campo Fq finito como elementos.
E10767167
27-08-2014
v‚:v• representa un vector n-dimensional que tiene elementos del campo Fq finito como elementos.
vµ: vµ representa el µ-ésimo elemento (µ = 1, ..., n) del vector n-dimensional.
10 Función resistente a colisiones: La función resistente a colisiones representa una función h que satisface la condición siguiente con respecto a un parámetro k de seguridad suficientemente más grande, o una función considerada como la función h.
15
Aquí, Pr [·] es la probabilidad de que suceda el evento [·]; A(h) es un algoritmo probabilístico de tiempo polinómico para calcular x e y (x ≠ y) que cumplen h (x) = h(y) para la función h; y Є(k) es una ecuación polinómica del
20 parámetro de seguridad k. Un ejemplo de una función resistente a colisiones es una función hash, tal como la función hash criptográfica descrita en la bibliografía de referencia 1.
Función inyectiva: La función inyectiva representa una función en la que cada elemento de su codominio es mapeada desde cada uno de los elementos de su dominio, o una función considerada como tal. Un ejemplo de la
25 función inyectiva es una función hash, tal como la función de derivación de claves (Key Derivation Function, KDF) descrita en la bibliografía de referencia 1.
Función quasi aleatoria: La función cuasi aleatoria representa una función que pertenece a un subconjunto φζ de un conjunto Φζ, o una función considerada como tal, en la que ningún algoritmo probabilístico de tiempo polinomial
30 puede distinguir el subconjunto φζ del conjunto Φζ; y el conjunto Φζ es un conjunto de todas las funciones que mapean un elemento de un conjunto {0, 1}* a un elemento del conjunto {0, 1}ζ. Un ejemplo de la función cuasi aleatoria es una función hash, tal como la descrita anteriormente.
H1: H1 representa una función resistente a colisiones que saca dos elementos (Ψ1, Ψ2) Є Fq x Fq del campo Fq finito 35 en respuesta a la introducción de dos secuencias binarias (ω1, ω2) Є {0, 1}k x {0, 1}*.
40 Un ejemplo de la función H1 es una función que saca dos elementos (Ψ1, Ψ2) Є Fq x Fq del campo Fq finito en respuesta a los bits conectados ω1||ω2 de entrada ω1y ω2. Esta función puede incluir una función hash, tal como la función hash criptográfica, una función de conversión secuencia-binaria-a-número-entero (conversión cadena de octetos/entero), y una función de conversión de secuencia-binaria-a-elemento-campo-finito (conversión de cadena
45 de octetos y número entero/campo finito), que se describen en la bibliografía de referencia 1. Preferiblemente, la función H1 es una función cuasi aleatoria.
H2: H2 representa una función resistente a colisiones que saca un elemento ΨЄ Fq del campo Fq finito en respuesta a un elemento de entrada del grupo cíclico GT y una secuencia binaria de entrada (ξ, ω2) Є GT * {0, 1}*. 50
55 Un ejemplo de la función H2 es una función que acepta un elemento ξЄ GT del grupo cíclico GT y una secuencia binaria ω2 Є {0, 1}*, introduce el elemento ξЄ GT del grupo cíclico GT a una función de conversión elemento-campofinito-a-secuencia-binaria (conversión de cadena de octetos y número entero/campo finito) descrita en la bibliografía de referencia 1 para obtener una secuencia binaria, aplica una función hash, tal como la función hash criptográfica descrita en la bibliografía de referencia 1, a los bits conectados de la secuencia binaria obtenida y la secuencia
60 binaria ω2 Є {0, 1}*, realiza la función de conversión secuencia-binaria-a-elemento-campo-finito (conversión de cadena de octetos y número entero/campo finito), y saca un elemento ΨЄ Fq del campo Fq finito. Para garantizar la mayor seguridad, es preferible que la función H2 sea la función cuasi aleatoria.
E10767167
27-08-2014
R: R representa una función inyectiva que saca una secuencia binaria ΩЄ {0, 1}k en respuesta a un elemento de entrada ξЄ GT del grupo cíclico GT.
5
Un ejemplo de la función R inyectiva es una función que recibe un elemento ξЄ GT del grupo cíclico GT, realiza
10 cálculos con la función de conversión elemento-campo-finito-a-secuencia-binaria (conversión cadena de octetos y número entero/campo finito) y, a continuación, con una función hash como la KDF (función de derivación de claves) descrita en la bibliografía de referencia 1, y saca una secuencia binaria ΩЄ {0, 1}k. Para garantizar la mayor seguridad, es preferible que la función R sea la función resistente a colisiones, y es más preferible que la función R sea la función cuasi aleatoria.
15 Enc: Enc representa una función de codificación de clave simétrica que indica el procesamiento de codificación de un criptosistema de clave simétrica. Ejemplos de sistemas criptográficos de clave simétrica son Camellia y AES.
Enck(M): Enck(M) representa un texto codificado obtenido mediante la codificación de un texto no codificado M 20 mediante la función de codificación Enc de clave simétrica con una clave simétrica K.
Dec: Dec representa una función de descodificación de clave simétrica que indica el procesamiento de descodificación del criptosistema de clave simétrica.
25 Deck(C): Deck(C) representa un resultado de descodificación obtenido al descodificar un texto codificado C mediante la función de descodificación Dec de clave simétrica con la clave simétrica K.
Codificación de predicado con producto interno A continuación se describirá el esquema básico de codificación de predicado con producto interno.
30 Codificación de predicado En la codificación de predicado (a veces denominada codificación mediante función), un texto codificado puede ser descodificado cuando una combinación de información de atributo e información de predicado hace que se cumpla una fórmula lógica predeterminada. Una de entre la información de atributo y la información de predicado está
35 incluida en el texto codificado y la otra está incluida en la información de clave. La codificación de predicado convencional, por ejemplo, se describe en la bibliografía de referencia 9, Jonathan Katz, Amit Sahai y Brent Waters, "Predicate Encryption Supporting Disjuntions, Polynomial Equations, and Inner Products", uno de los cuatro artículos de Eurocrypt 2008 invitados por el Journal of Criptology.
40 Codificación de predicado con producto interno En la codificación de predicado con producto interno, un texto codificado puede ser descodificado cuando el producto interno de la información de atributo y la información de predicado, que son vectores, es cero. En la codificación de predicado con producto interno, un producto interno igual a cero es equivalente a la fórmula lógica de la verdad.
45 Relación entre la fórmula lógica y el polinomio En la codificación predicado con producto interno, la fórmula lógica formada por uno o varios OR lógicos y/o uno o varios AND lógicos se expresa mediante un polinomio.
50 El operador lógico OR (x = η1) v (x = η2) de una proposición 1 que indica que x es η1 y una proposición 2 que indica que xes η2 se expresa mediante el polinomio siguiente.
A continuación, las relaciones entre los valores de la verdad y los valores de la función de la expresión (36) se muestran en la tabla siguiente.
E10767167
27-08-2014
Tabla 1
- Proposición 1 (x = η1)
- Proposición 2 (x = η2) OR lógico (x = η1) v (x = η2) Valor de función (x = η1)·(x = η2)
- Verdadero
- Verdadero
- Verdadero
- 0
- Verdadero
- Falso Verdadero 0
- Falso
- Verdadero Verdadero 0
- Falso
- Falso
- Falso
- Diferente de 0
5
Tal como se entiende a partir de la Tabla 1, cuando el OR lógico (x = η1) v (x = η2) es verdadero, el valor de la función de la expresión (36) es cero; y cuando el OR lógico (x = η1) v (x = η2) es falso, el valor de la función de la expresión (36) es un valor distinto de cero. En otras palabras, el OR lógico (x = η1) v (x = η2) de verdadero es
10 equivalente al valor de función de cero en la expresión (36). Por lo tanto, el operador lógico OR puede expresarse mediante la expresión (36).
El AND lógico (x = η1) ^ (x = η2) de la proposición 1 que indica que x es η1 y la proposición 2 que indica que x es η2 se expresa mediante el polinomio siguiente
15
20 enelque ι1y ι2 son números aleatorios. A continuación, las relaciones entre los valores de la verdad y los valores de la función de la expresión (37) se muestran en la tabla siguiente.
Tabla 2
- Proposición 1 (x = η1)
- Proposición 2 (x = η2) AND lógico (x = η1) ^ (x = η2) Valor de función ι1·(x = η1) + ι2·(x = η2)
- Verdadero
- Verdadero
- Verdadero
- 0
- Verdadero
- Falso Falso Diferente de 0
- Falso
- Verdadero Falso Diferente de 0
- Falso
- Falso
- Falso
- Diferente de 0
25 Tal como se entiende a partir de la Tabla 2, cuando el AND lógico (x = η1) ^ (x = η2) es verdadero, el valor de función de la expresión (37) es cero; y cuando el AND lógico (x = η1) ^(x= η2) es falso, el valor de función de la expresión (37) es un valor distinto de cero. En otras palabras, un AND lógico (x = η1) ^ (x = η2) verdadero es equivalente a un valor de función de cero en la expresión (37). Por lo tanto, el AND lógico puede ser expresado
30 mediante la expresión (37).
Tal como se ha descrito anteriormente, usando las expresiones (36) y (37), una fórmula lógica formada por uno varios OR lógicos y/o uno o varios AND lógicos puede ser expresada mediante un polinomio f(x). A continuación, se mostrará un ejemplo.
En la expresión (36), se usa un elemento indeterminado x para expresar el OR lógico. También puede usarse una
45 pluralidad de elementos indeterminados para expresar un OR lógico. Por ejemplo, cuando se usan dos elementos indeterminados x0 y x1, el OR lógico (x0 = η0)v(x1 = η1) de la proposición 1 que indica que x0 es η0 y la proposición 2 que indica que x1 es η1 se puede expresar mediante el polinomio siguiente.
E10767167
27-08-2014
5 Pueden usarse también tres o más elementos indeterminados para expresar un OR lógico mediante un polinomio.
En la expresión (37), se usa un elemento indeterminado x para expresar el AND lógico. Pueden usarse también una pluralidad de elementos indeterminados para expresar un AND lógico. Por ejemplo, el AND lógico (x0 = η0) ^ (x1 = η1) de la proposición 1 que indica que x0 es η0 y la proposición 2 que indica que x1 es η1 se puede expresar
10 mediante el polinomio siguiente.
15 Pueden usarse también tres o más elementos indeterminados para expresar un AND lógico mediante un polinomio.
Una fórmula lógica que incluye uno más OR lógicos y/o uno o más AND lógicos se expresa con H (H ≥ 1) tipos de elementos indeterminados x0, ..., XH-1 como el polinomio f(x0, ..., XH-1). Se supone que una proposición para cada 20 uno de los elementos indeterminados x0, …, XH-1 es "xh es ηh", en la que ηh (h = 0, ..., H-1) es una constante determinada para cada proposición. Entonces, en el polinomio f(x0, ..., XH-1) que indica la fórmula lógica, la proposición que indica que un elemento indeterminado Xh es una constante ηh se expresa mediante el polinomio que indica la diferencia entre el elemento indeterminado xh y la constante ηh; el OR lógico de las proposiciones se expresa mediante el producto de los polinomios que indican las proposiciones; y el AND lógico de las proposiciones
25 o los ORs lógicos de las proposiciones se expresan mediante una combinación lineal de los polinomios que indican las proposiciones o los ORs lógicos de las proposiciones. Por ejemplo, se usan cinco elementos indeterminados x0, …, x4 para expresar una fórmula lógica
mediante el polinomio siguiente
- Relación entre el polinomio y el producto interno
- 40
- El polinomio f(x0, ..., xH-1) que indica una fórmula lógica puede ser expresado mediante el producto interno de dos
- vectores n-dimensionales. Más específicamente, el polinomio f(x0, ..., xH-1) es igual al producto interno de un vector
- 45
-
imagen43
- que tiene los elementos indeterminados de los términos del polinomio f(x0, ..., xH-1) como elementos, y un vector
- 50
-
imagen44
- que tiene los coeficientes de los términos del polinomio f(x0, ..., xH-1) como elementos.
- 55
60 En otras palabras, si el polinomio f(x0, ..., xH-1) que indica una fórmula lógica es cero es equivalente a si el producto interno del vector v• que tiene los elementos indeterminados de los términos del polinomio f(x0, ..., xH-1) como elementos y el vector w• que tiene los coeficientes de los términos del polinomio f(x0, ..., xH-1) como elementos es
E10767167
27-08-2014
cero .
Por ejemplo, un polinomio f(x) = θ0.x 0 + θ1.x +. . . + θn-1.x n-1 expresado con un elemento indeterminado x puede ser expresado mediante el producto interno de dos vectores n-dimensionales de la manera siguiente.
10
15
20 En otras palabras, si el polinomio f(x) que indica una fórmula lógica es cero es equivalente a si el producto interno en la expresión (41) es cero.
- 25
- Cuando
- un vector que tiene los elementos indeterminados de los términos del polinomio f(x0, ..., xH-1) como
- elementos se expresa mediante
- 30
- y un vector que tiene los coeficientes de los términos del polinomio f(x0, ..., xH-1) como elementos se expresa
- 35
- mediante
40 si el polinomio f(x0, ..., xH-1) que indica una fórmula lógica es cero es equivalente a si el producto interno del vector w• y el vector v• es cero.
Por ejemplo, cuando las expresiones siguientes se usan en lugar de las expresiones (39) y (40), 45
50
si el polinomio f(x) que indica una fórmula lógica es cero es equivalente a si el producto interno en la expresión (41) es cero.
55 En la codificación de predicado con producto interno, uno de los vectores v• = (v0, ..., vn-1) y w• = (w0, ..., wn-1) se usa como la información de predicado y el otro se usa como la informaciónn de predicado. Una de entre la información de atributo y la información de predicado está incluida en el texto codificado y la otra está incluida en información de clave. Por ejemplo, un vector n-dimensional (θ0, ..., θn-1) se usa como la información de predicado, otro vector n-dimensional (x0, ..., x n-1) se usa como la información de atributo, una de entre la información de atributo
60 y la información de predicado está incluida en el texto codificado, y la otra está incluida en la información de clave. En la descripción siguiente, se supone que un vector n-dimensional incluido en la información de clave es w• = (w1, ..., wn) y otro vector n-dimensional incluido en el texto codificado es v• = (v1, ..., vn).
E10767167
27-08-2014
Por ejemplo,
Información de predicado: w• = (w1, ..., wn) = (θ0, ..., θn-1)
n-1)
5 Información de atributo: v• = (v1, ..., vn) = (x0, ..., x De manera alternativa, Información de predicado: v• = (v1, ..., vn) = (θ0, ..., θn-1)
n-1)
Información de atributo: w• = (w1, ..., wn) = (x0, ..., x
10 Esquema básico de codificación de predicado con producto interno Un ejemplo de un esquema básico de un mecanismo de encapsulación de clave (KEM) se describe en la bibliografía no patente 4, que ha sido publicada después de la fecha de prioridad de la presente solicitud, y se describirá más adelante.
15 Este esquema incluye Setup(1k), Genkey(MSK, w‚), Enc(PA, v‚) y Dec(SKw, C2).
Configuración de Setup(1k) Entrada: parámetro k de seguridad Salida: Información de clave maestra MSK, parámetro público PK
20 En un ejemplo de Setup(1k), el parámetro k de seguridad se usa como n, se seleccionan la matriz A de (n+1) filas por (n+1) columnas que tiene los vectores base (n+1) dimensionales ai (i = 1, ..., n+1) como elementos, la matriz A* de (n+1) filas por (n+1) columnas que tiene los vectores base ai* (i = 1, ..., n+1) como elementos, y las matrices X y X * de (n+1) filas por (n+1) columnas usadas para la transformación de coordenadas. A continuación, los vectores
25 base (n+1) dimensionales bi (i = 1, ..., n+1) se calculan mediante una transformación de coordenadas mediante la expresión (22), y los vectores base (n+1) dimensionales bi* (i = 1, ..., n+1) se calculan mediante una transformación de coordenadas mediante la expresión (24). A continuación, la matriz B* de (n+1) filas por (n+1) columnas que tiene los vectores base bi* (i = 1, ..., n+1) como elementos es sacada como la información de clave maestra MSK; y los espacios vectoriales V y V*, la matriz B de (n+1) filas por (n+1) columnas que tienen los vectores base bi (i = 1, ...,
30 n+1) como elementos, el parámetro k de seguridad, el campo Fq finito, la curva elíptica E, los grupos cíclicos G1, G2 y GT, los generadores g1, g2, y gT, la función e bilineal, etc., son sacados como el parámetro público PK.
Generación de información de clave Genkey(MSK, w‚) Entrada: información de clave maestra MSK, vector w• 35 Salida: Información de clave D* correspondiente al vector w•
En un ejemplo de Genkey(MSK, w‚), se selecciona un elemento αЄ Fq desde el campo Fq finito. A continuación, la matriz B*, que es la información de clave maestra MSK, es usada para generar y sacar la información de clave D* correspondiente al vector w• de la manera siguiente.
40
Si es difícil resolver un problema logarítmico discreto en el grupo cíclico G2, es difícil separar y extraer los 45 componentes de wµ·bµ* y bn+1* a partir de la información de clave D*.
Codificación Enc(PA, v‚) Entrada: parámetro público PK, vector v• Salida: Texto codificado C2, clave simétrica K
50 En un ejemplo de Enc(PA, v‚), se generan la clave simétrica K y un número aleatorio υ1, que es un elemento del campo Fq finito. A continuación, el parámetro público PK, tal como la matriz B, un elemento υ2 correspondiente a un valor que incluye la clave simétrica K, en el campo Fq finito, el vector v‚, y el número aleatorio υ1 se usan para generar el texto codificado C2 de la manera siguiente.
55
E10767167
27-08-2014
Se sacan el texto codificado C2 y la clave simétrica K. Un ejemplo de la clave simétrica K es gT τ.υ2 Є GT, en la que υ2 significa υ2. Un ejemplo de τ es 1F, tal como se ha descrito anteriormente. Si es difícil resolver un problema logarítmico discreto en el grupo cíclico G1, es difícil separar y extraer los componentes de vµ.bµ y υ2.bn+1 a partir del texto codificado C2.
5 Descodificación y compartición de clave Dec(SKW, C2)
Entrada: Información de clave D1* correspondiente al vector w‚, texto codificado C2
10 Salida: clave simétrica K
En un ejemplo de Dec(SKw, C2), el texto codificado C2 y la información de clave D1* son introducidos a la función e bilineal de la expresión (2).
15 A continuación, a partir de las características de las expresiones (3) y (26), se cumple ecuación siguiente.
30
Cuando el producto interno w‚·v• es cero, la expresión (47) puede ser modificada a la forma siguiente.
35
τ.υ2 Є
A partir de este resultado, se genera y se saca la clave simétrica K. Un ejemplo de la clave simétrica K es gT GT. Seguridad contra CCA El esquema es seguro contra CCA si se cumple la relación siguiente en el supuesto proporcionado a continuación:
en la que FNK(k) es una función de k. Si [3] implica [2], el sistema es seguro contra CCA2. Si [2] implica [3], el 55 sistema es seguro contra CCA1. CCA2 es más fuerte que CCA1.
[1] El atacante recibe un parámetro público PK.
[2] El atacante pasa dos grupos de texto no codificado M0 y M1, que son dos cadenas de bits, a un oráculo de codificación que tiene el parámetro público PK. El oráculo de codificación selecciona un bit Є {0, 1}
60 aleatoriamente, codifica cualquiera de los dos grupos de texto no codificado Mbit, y proporciona el texto codificado C al atacante.
[3] El atacante puede pasar un texto codificado C(σ)(C(σ) ≠ C) a un oráculo de descodificación que tiene 19
E10767167
27-08-2014
información de clave D* y recibe un resultado descodificado del texto codificado C(σ) desde el oráculo de descodificación.
[4] El atacante saca el bit' Є {0, 1}.
5 Seguridad contra CCA en un esquema básico de codificación de predicado con producto interno El esquema básico de la codificación de predicado con producto interno descrito anteriormente no es seguro contra CCA. Esto se describirá mostrando un ejemplo sencillo. En el ejemplo sencillo, τ = 1F; la clave simétrica K es K = MAP (gT υ2); y el texto codificado obtenido mediante la codificación de clave simétrica del texto no codificado M con la clave simétrica K es C1 = K (+) M. MAP (gT υ2) representa el mapeo de gT υ2 Є GT a una cadena de bits. En este
10 ejemplo, el atacante puede adoptar la estrategia siguiente (denominada en adelante estrategia asumida).
[1] El atacante recibe un parámetro público PK.
[2] El atacante pasa un vector v• y dos grupos de texto no codificado M0 y M1 a un oráculo de codificación
que tiene el parámetro público PK. El oráculo de codificación selecciona bit Є {0, 1} aleatoriamente, genera 15 el texto codificado
obtenido mediante la codificación de cualquiera de los grupos de texto no codificado Mbit con la clave simétrica K = gT υ2, genera texto codificado
con la clave simétrica K = gT υ2, y proporciona el texto codificado (C1, C2) al atacante.
[3] El atacante pasa el texto codificado
35 a un oráculo de descodificación que tiene la información de clave D* y recibe los resultados descodificados del texto codificado C1(1) y C1(2) desde el oráculo de descodificación. Aquí, si el bit = 0, entonces C1 = K (+) M0, y el resultado descodificado de C1 (+) ∆M es M0 (+) ∆M. Si bit = 1, entonces C1 = K (+) M1, y el resultado de descodificación de C1 (+) ∆M es M1 (+) ∆M.
40 [4] Cuando el resultado descodificado de C1 (+) ∆M es M0 (+) ∆M, el atacante saca el bit'= 0. Cuando el resultado descodificado es M1 (+) ∆M, el atacante saca el bit' = 1.
Entonces, Pr[bit = bit'] = 1, y la expresión (49) no se cumple.
45 Codificación de predicado con producto interno en las realizaciones Tal como se ha descrito anteriormente, el esquema básico de la codificación de predicado con producto interno no es seguro contra CCA. Si se usa el procedimiento de transformación CHK o el método de transformación BK para hacer que el esquema básico de codificación de predicado con producto interno sea seguro contra CCA, es necesario un espacio bidimensional usado sólo para mejorar el nivel de seguridad contra CCA en el espacio de
50 texto codificado, y el número de dimensiones de los espacios vectoriales V y V* debe ser n+3. En las realizaciones, la seguridad contra CCA se mejora sin proporcionar un espacio usado sólo para mejorar el nivel de seguridad contra CCA.
Esquema mejorado de codificación de predicado con producto interno 55 A continuación, se describirá un esquema mejorado de codificación de predicado con producto interno en las realizaciones.
Procesamiento de codificación Un aparato de codificación para realizar el procesamiento de codificación realiza el procesamiento siguiente.
60 (ENC-1) Una unidad de codificación de clave simétrica introduce el texto no codificado M y una clave simétrica K, ambos de los cuales son leídos desde el almacenamiento, a una función de codificación de
E10767167
27-08-2014
clave simétrica para calcular el texto codificado C1 y saca el texto codificado C1. (ENC-2) Una unidad de operación de función introduce un valor que contiene un valor correspondiente a la clave simétrica K y un valor correspondiente al texto codificado C1 a la función H resistente a colisiones para calcular el valor de función de la función H y saca el valor de función de la función H. (ENC-3) Una unidad de operación vectorial calcula el texto codificado
10 usando el elemento r del campo Fq finito, correspondiente al valor de función de la función H, el elemento ρ del campo Fq finito, correspondiente a la clave simétrica K, los elementos vµ (µ = 1, ..., n, n ≥ 1) del vector ndimensional v• (v1, ..., vn) compuesto de los elementos del campo Fq finito, y los vectores base n+1 dimensionales bi Є G1n+1, y saca el texto codificado C2.
15 Procesamiento de descodificación
Un aparato de descodificación para realizar el procesamiento de descodificación ejecuta el procesamiento siguiente.
20 (DEC-1) Un valor que contiene el texto codificado C1 y el texto codificado C2 Є G1n+1 es introducido a una unidad de entrada. (DEC-2) Una unidad de operación de función bilineal introduce el texto codificado C2 Є G1n+1 y la información de clave
25
a la función e bilineal para calcular el valor de función
35 y saca el valor de función S ~. (DEC-3) Una unidad de operación de función introduce el valor correspondiente al valor de función S ~ y el texto codificado C1 a la función H resistente a colisiones para calcular el valor de función de la función H y saca el valor de función de la función H. Si la información de clave D1* es correcta, el valor correspondiente
40 al valor de función S ~ es igual al valor correspondiente a la clave simétrica K, que es introducido a la función H resistente a colisiones en (ENC-2) del procedimiento de codificación. (DEC-4) Una unidad de decisión decide si el texto codificado C2, el elemento r~ del campo Fq finito, correspondiente al valor de función de la función H, el elemento ρ ~ del campo Fq finito, los elementos vµ del vector n-dimensional v‚, y los vectores base bi Є G1n+1 (i = 1, ..., n+1) cumplen la relación siguiente, y saca a
45 la determinación.
50 (DEC-5) Si la expresión (55) se cumple, se saca el resultado descodificado del texto codificado C1. Si la expresión (56) no se cumple, se saca un mensaje de error (┴).
Seguridad contra CCA en un método mejorado de codificación de predicado con producto interno 55 Se describirá un caso en el que se aplica la estrategia asumida descrita anteriormente al esquema mejorado.
[1] El atacante recibe el parámetro público PK.
[2] El atacante pasa el vector v• y los dos grupos de texto no codificado M0 y M1 al oráculo de codificación que tiene el parámetro público PK. El oráculo de codificación selecciona bit Є {0, 1} aleatoriamente, codifica
60 cualquiera de los grupos de texto no codificado Mbit con una clave simétrica K = gT υ2, y genera el texto codificado
E10767167
27-08-2014
5 (ENC-1). El oráculo de codificación introduce adicionalmente el valor que contiene el valor correspondiente a la clave simétrica K y el valor correspondiente al texto codificado C1 a la función H resistente a colisiones para calcular el valor de función de la función H (ENC-2). A continuación, el oráculo de codificación genera el texto codificado
de la clave simétrica K = gT υ2 usando el elemento r del campo Fq finito, correspondiente al valor de función
15 de la función H, el elemento ρ del campo Fq finito, correspondiente a la clave simétrica K, los elementos vµ (µ = 1, ..., n, n ≥ 1) del vector n-dimensional v• = (v1, ..., vn) compuesto de elementos del campo Fq finito, y los vectores base n+1 dimensionales bi Є G1n+1 (ENC-3), y proporciona el texto codificado (C1, C2) al atacante.
[3] Debido a que el atacante no conoce la clave simétrica K, el atacante no puede generar C2 '= r'.(∑µ=1 n
20 vµ.bµ) + ρ.bn+1 Є G1n+1 correspondiente a un elemento r 'del campo Fq finito, correspondiente al valor de función obtenido al introducir el valor que contiene el texto codificado C1 (+) ∆M y el valor correspondiente a la clave simétrica K a la función H resistente a colisiones. Por lo tanto, el atacante pasa a la siguiente combinación de C1 (+) ∆M y el texto codificado C2 correspondiente al texto codificado C1 a un oráculo de descodificación.
25
30 El oráculo de descodificación al cual ha sido introducido (DEC-1) el texto codificado de la expresión (59) genera el valor de función S ~ de la expresión (55) (DEC-2), calcula el valor de función de la función H resistente a colisiones introduciendo el texto codificado C1 (+) ∆M y el valor correspondiente al valor de función S ~ a la función H, y saca el valor de función de la función H (DEC-3). El oráculo de descodificación determina si el segundo texto codificado C2, un elemento r ~ ∆M del campo Fq finito, correspondiente al valor de
35 función de la función H, el elemento ρ ~ del campo Fq finito, los elementos vµ del vector n-dimensional v‚,y los vectores base bi Є G1n+1 (i = 1, ..., n+1) cumplen la relación siguiente.
40
(DEC-4). Aquí, debido a que r ~ ∆M ≠ r~, la expresión (60) no se cumple, y el oráculo de descodificación saca el mensaje de error (┴).
[4] Debido a que el atacante no puede obtener el resultado descodificado de C1 (+) ∆M, el atacante no es
45 capaz de sacar el bit’ = 0 cuando el resultado descodificado es M0 (+) ∆M o de sacar el bit' = 1 cuando el resultado descodificado es M1 (+) ∆M. Por consiguiente, la estrategia asumida del atacante fracasará.
Primera realización A continuación se describirá una primera realización del esquema mejorado.
50 Visión general A continuación, se proporcionará una visión general de la primera realización.
Procesamiento de codificación 55 Un aparato de codificación para realizar el procesamiento de codificación realiza el procesamiento siguiente.
(ENC-11) Una unidad de codificación de clave simétrica introduce el texto no codificado M y la clave simétrica K, ambos de los cuales son leídos desde un almacenamiento, a la función de codificación de clave simétrica para calcular el texto codificado C1 y saca el texto codificado C1.
60 (ENC-21) Una unidad de operación de función pone la clave simétrica K y texto codificado C1 en la función H resistente a colisiones para calcular los elementos r y ρ del campo Fq finito y saca los elementos r y ρ. La clave simétrica K en (ENC-21) corresponde al valor correspondiente a la clave simétrica K indicada
E10767167
27-08-2014
anteriormente en (ENC-2). (ENC-31) Una unidad de operación de función calcula el valor de función S = gT τ.ρЄ GT usando el elemento ρ y saca el valor de función S. (ENC-32) Una unidad de operación OR exclusivo calcula el texto codificado C3 que es el valor OR exclusivo
5 de la clave simétrica K y el valor de función R(S) que es la secuencia binaria obtenida introduciendo el valor de función S a la función R inyectiva, y saca el texto codificado C3.
n n+1
(ENC-33) Una unidad de operación vectorial calcula C2 = r.(∑µ=1 vµ.bµ) + ρ.bn+1 Є G1 usando los elementos vµ (µ = 1, ..., n) del vector n-dimensional v• compuesto por los elementos del campo Fq finito y los elementos r y ρ, y saca el texto codificado C2.
10 Procesamiento de descodificación Un aparato de descodificación para realizar el procesamiento de descodificación ejecuta el procesamiento siguiente.
15 (DEC-11) Un valor que contiene el texto codificado C1, el texto codificado C2 y el texto codificado C3 es introducido a una unidad de entrada. (DEC-21) Una unidad de operación de función bilineal introduce el texto codificado C2 Є G1n+1 y la información de clave D1* = α.(∑µ=1 n wµ.bµ*) + bn+1* a la función e bilineal para calcular el valor de función S ~ = E (C2, D1*) Є GT y saca el valor de función S ~.
20 Si el producto interno cumple w‚·v• = 0, las características de las expresiones (3) y (26) conducen a la expresión siguiente.
- 40
- 45
- (DEC-31) Una unidad de operación OR exclusivo calcula el valor OR exclusivo K ~ del texto codificado C3 y el valor de función R(S ~ ) que es la secuencia binaria obtenida introduciendo el valor de función S ~ a la función R inyectiva, y saca el valor OR exclusivo K ~ . Si se cumple la expresión (61), se cumple la relación siguiente.
55 (Dec-32) Una unidad de operación de función introduce el valor OR exclusivo K ~ y el texto codificado C1 a la función H resistente a colisiones para calcular los elementos r ~ y ρ ~ del campo Fq finito y saca los elementos
~~ ~
ry ρ . Los elementos r ~ y ρ en (Dec-31) corresponden al valor que contiene el elemento r ~ indicado anteriormente en (Dec-3).
~ n n+1
60 (Dec-41) Una unidad de operación vectorial calcula el valor de función C2 = r ~.(∑µ=1 vµ.bµ) + ρ ~.bn+1 Є G1 usando los elementos vµ (µ = 1, ..., n) del vector n-dimensional v• y los elementos r ~ y ρ ~ y saca el valor de función C2~.
E10767167
27-08-2014
(Dec-42) Una unidad de comparación determina si el valor de función C2~ es igual al texto codificado C2 y saca la determinación. Esta determinación corresponde a la determinación en (DEC-4). DEC-51) Si la determinación sacada desde la unidad de comparación indica que el valor de función C2~ es igual al texto codificado C2, una unidad de descodificación de clave simétrica usa el valor OR exclusivo K ~
5 como la clave simétrica, introduce el valor OR exclusivo K~ y el texto codificado C1 a la función de descodificación de clave simétrica para calcular el valor descodificado M ~, y saca el valor descodificado M ~. Si la determinación sacada desde la unidad de comparación indica que el valor de función C2~ no es igual al texto codificado C2, se saca un mensaje de error (┴).
10 Seguridad contra CCA en la primera realización Se describirá un caso en el que se aplica la estrategia asumida descrita anteriormente al esquema de la primera realización. En este ejemplo, τ = 1F, y el texto codificado obtenido mediante codificación de clave simétrica del texto no codificado M con la clave simétrica K es C1 = K (+) M.
15 [1] El atacante recibe el parámetro público PK.
[2] El atacante pasa el vector v• y dos grupos de texto no codificado M0 y M1 al oráculo de codificación que tiene el parámetro público PK. El oráculo de codificación selecciona bit Є {0, 1} aleatoriamente, codifica cualquiera de los grupos de texto no codificado Mbit con clave simétrica K = gT υ2, y genera un texto codificado
20
(ENC-11). El oráculo de codificación introduce además la clave simétrica K y el texto codificado C1 a la
25 función H resistente a colisiones para calcular los elementos r y ρ del campo Fq finito (ENC-21) calcula el valor de función S = gT τ.ρЄ GT (ENC-31) calcula el texto codificado C3 obteniendo un OR exclusivo del valor
n
R(S) de función y la clave simétrica K (ENC-32), calcula C2 = r.(∑µ=1 vµ.bµ) + ρ.bn+1 Є G1n+1 (ENC-33) y proporciona el texto codificado (C1, C2, C3) al atacante.
[3] Debido a que el atacante no conoce la clave simétrica K, el atacante no puede generar C2 '= r'.(∑µ=1 n
30 vµ.bµ) + ρ.bn+1 Є G1n+1 correspondiente a los elementos r'y ρ' del campo Fq finito, obtenido al introducir la clave simétrica K y el texto codificado C1 (+) ∆M a la función H resistente a colisiones. Por lo tanto, el atacante pasa la siguiente combinación de C1 (+) ∆M, el texto codificado C2 correspondiente al texto codificado C1, y el texto codificado C3 a un oráculo de descodificación.
35
El oráculo de descodificación al que ha sido introducido el texto codificado de la expresión (64) (DEC-11)
40 genera el valor de función S~ = e(C2, D1*) Є GT (DEC-21), calcula el valor OR exclusivo K ~ del texto codificado C3 y el valor de función R(S ~) que es la secuencia binaria obtenida introduciendo el valor de función S ~ a la función R inyectiva, y calcula los elementos r ~ ∆My ρ ~ ∆M del campo Fq finito introduciendo el valor OR exclusivo K ~ y el texto codificado C1 (+) ∆M a la función H resistente a colisiones (DEC-32). El oráculo de descodificación calcula el siguiente valor de función C2~ usando los elementos vµ de v‚, el
45 elemento r ~ ∆M, los vectores base bi Є G1n+1 (i = 1, ..., n+1), y el elemento de ρ ~ ∆M (DEC-41).
50 A continuación, el oráculo de descodificación determina si el valor de función C2~ es igual al texto codificado C2~. Aquí, debido a que r ~ ∆M ≠ r~ y ρ ~ ∆M ≠ρ ~, la expresión (65) no cumple esta relación, y el oráculo de descodificación saca un mensaje de error (┴).
[4] Debido a que el atacante no puede obtener el resultado descodificado de C1 (+) ∆M, el atacante no es
55 capaz de sacar el bit' = 0 cuando el resultado descodificado es M0 (+) ∆M o sacar el bit' = 1 cuando el resultado es M1 (+) ∆M. Por consiguiente, la estrategia del atacante fracasará.
Detalles A continuación, se describirá la primera realización. Aunque en este ejemplo se cumple τ = 1F, esto no limita la 60 presente invención, y τ puede ser un elemento del campo Fq finito diferente de 0F o 1F.
5
10
15
20
25
30
35
40
45
50
55
60 E10767167
27-08-2014
Estructura general
La Figura 1 es una vista que ilustra la estructura de un sistema criptográfico 1 de la primera realización.
Tal como se muestra en la Figura 1, el sistema criptográfico 1 de esta realización incluye un aparato 110 de
codificación, un aparato 120 de descodificación y un aparato 130 de generación de claves, que están
conectados a través de una red 140 de manera que pueden comunicarse entre sí.
Aparato de codificación La Figura 2 es una vista que ilustra la estructura del aparato 110 de codificación en la Figura 1. Las flechas en la Figura 2 indican el flujo de datos, pero se omiten las flechas para indicar la entrada y salida de datos a y desde una unidad 111 de control y un almacenamiento 113b temporal.
Tal como se muestra en la Figura 2, el aparato 110 de codificación de esta realización incluye la unidad 111 de control, un generador 112a de números aleatorios, una unidad 112b de codificación de clave simétrica, una unidad 112c de operación de función, una unidad 112d de operación de grupo, una unidad 112e de operación OR exclusivo, una unidad 112f de operación vectorial, un almacenamiento113a, el almacenamiento 113b temporal y un transmisor 114.
El aparato 110 de codificación es, por ejemplo, un aparato especial que incluye un programa especial y un ordenador conocido o especializado provisto de una unidad central de procesamiento (CPU), una memoria de acceso aleatorio (RAM), una memoria de sólo lectura (ROM) o similares. La unidad 111 de control, el generador 112a de números aleatorios, la unidad 112b de codificación de clave simétrica, la unidad 112c de operación de función, la unidad 112d de operación de grupo, la unidad 112e de operación OR exclusivo y las unidades 112f de operación vectorial son unidades implementadas por la CPU que ejecuta el programa especial. Al menos algunas de las unidades de procesamiento pueden ser un circuito integrado especializado: Por ejemplo, el generador 112a de números aleatorios puede ser un circuito integrado de generación de números aleatorios conocido. El almacenamiento 113a y el almacenamiento 113b temporal son, por ejemplo, un almacenamiento auxiliar, tal como una RAM, un registro, una memoria caché, un elemento en un chip, o un disco duro, o un área de almacenamiento formada combinando al menos algunos de estos dispositivos. El transmisor 114 es un dispositivo de comunicación, tal como un módem o una tarjeta de red de área local (LAN), por ejemplo.
El aparato 110 de codificación ejecuta el procesamiento bajo el control de la unidad 111 de control. Cada grupo de datos desde cada unidad de procesamiento es almacenado en el almacenamiento 113b temporal o el almacenamiento 113a, los datos almacenados en el almacenamiento 113b temporal o el almacenamiento 113a son leídos, introducidos a una unidad de procesamiento, y usados para su procesamiento, cuando sea necesario, aunque estas descripciones de flujo de datos se simplifican a continuación.
Aparato de descodificación La Figura 3 es una vista que ilustra la estructura del aparato 120 de descodificación en la Figura 1. Las flechas en la Figura 3 indican el flujo de datos, pero se omiten las flechas para indicar la entrada y la salida de datos a y desde una unidad 121 de control y un almacenamiento 123b temporal.
Tal como se muestra en la Figura 3, el aparato 120 de descodificación de esta realización incluye la unidad 121 de control, una unidad 122a de operación de la función bilineal, una unidad 122b de operación OR exclusivo, una unidad 122c de operación de función, una unidad 122d de decisión, una unidad 122e de descodificación de clave simétrica, un almacenamiento 123a, el almacenamiento 123b temporal, un transmisor 124 y un receptor 125 (correspondiente a la unidad de entrada). La unidad 122d de decisión incluye una unidad 122da de operación vectorial y una unidad 122db de comparación.
El aparato 120 de descodificación es, por ejemplo, un aparato especial que incluye un programa especial y un ordenador conocido o especializado provisto de una CPU, una RAM, una ROM o similar. La unidad 121 de control, la unidad 122a de operación de función bilineal, la unidad 122b de operación OR exclusivo, la unidad 122c de operación de función, la unidad 122d de decisión, y la unidad 122e de descodificación de clave simétrica son unidades de procesamiento implementadas por la CPU que ejecuta el programa especial, por ejemplo. Al menos algunas de las unidades de procesamiento pueden ser un circuito integrado especializado: Por ejemplo, la unidad 122a de operación de función bilineal puede ser un circuito integrado de cálculo de emparejamiento conocido. El almacenamiento 123a y el almacenamiento 123b temporal son, por ejemplo, un almacenamiento auxiliar, tal como una RAM, un registro, una memoria caché, un elemento en un chip, o un disco duro, o una zona de almacenamiento formada por la combinación de al menos algunos de estos dispositivos. El transmisor 124 y el receptor 125 son un dispositivo de comunicación, tal como un módem o una tarjeta de LAN, por ejemplo.
El aparato 120 de descodificación ejecuta el procesamiento bajo el control de la unidad 121 de control. Cada pieza de datos sacada desde cada unidad de procesamiento es almacenada en el almacenamiento 123b temporal o el
E10767167
27-08-2014
almacenamiento 123a, los datos almacenados en el almacenamiento 123b temporal o el almacenamiento 123a son leídos, introducidos a una unidad de procesamiento, y usados para su procesamiento, cuando sea necesario, aunque estas descripciones de flujo de datos se simplifican a continuación.
5 Aparato de generación de claves La Figura 4 es una vista que ilustra la estructura del aparato 130 de generación de claves en la Figura 1. Las flechas en la Figura 4 indican el flujo de datos, pero se omiten las flechas para indicar la entrada y salida de datos a y desde una unidad 131 de control y el almacenamiento 133b temporal.
10 Tal como se muestra en la Figura 4, el aparato 130 de generación de claves de esta realización incluye la unidad 131 de control, un generador 132a de números aleatorios, una unidad 132b de operación vectorial, un almacenamiento 133a, un almacenamiento 133b temporal, un receptor 134 y un transmisor 135.
El aparato 130 de generación de claves es, por ejemplo, un aparato especial que incluye un programa especial y un
15 ordenador conocido o especializado provisto de una CPU, una RAM, una ROM o similar. La unidad 131 de control, el generador 132a de números aleatorios y la unidad 132b de operación vectorial son unidades de procesamiento implementadas por la CPU que ejecuta el programa especial, por ejemplo. Al menos algunas de las unidades de procesamiento pueden ser un circuito integrado especializado: El almacenamiento 133a y el almacenamiento 133b temporal son, por ejemplo, un almacenamiento auxiliar, tal como una RAM, un registro, una memoria caché, un
20 elemento de un circuito integrado, o un disco duro, o una zona de almacenamiento formada combinando al menos algunos de estos dispositivos. El transmisor 134 y el receptor 135 son un dispositivo de comunicación, tal como un módem o una tarjeta LAN, por ejemplo.
El aparato 130 de generación de claves ejecuta el procesamiento bajo el control de la unidad 131 de control. A
25 continuación, se describirá sólo brevemente el flujo de datos. Cada grupo de datos sacados desde cada unidad de procesamiento es almacenado en el almacenamiento 133b temporal o el almacenamiento 133a, los datos almacenados en el almacenamiento 133b temporal o el almacenamiento 133a son leídos, introducidos a una unidad de procesamiento y usados para su procesamiento, cuando sea necesario, aunque estas descripciones de flujo de datos se simplifican a continuación.
30 Ajustes preparatorios A continuación, se describirán los ajustes preparatorios para ejecutar el procesamiento en esta realización.
Un parámetro público PK se especifica en el aparato 110 de codificación, el aparato 120 de descodificación y el
35 aparato 130 de generación de claves. El parámetro público PK incluye los espacios vectoriales V y V*, en los que la matriz B de (n+1) filas por (n+1) columnas que tiene los vectores base bi (i = 1, ..., n+1) como elementos, el parámetro k de seguridad, el campo Fq finito, la curva elíptica E, los grupos cíclicos G1, G2 y GT, los generadores g1, g2 y gT, la función bilineal e y el número entero n mayor o igual que 1. La función H1 resistente a colisiones mostrada en la expresión (33) y la función R inyectiva mostrada en la expresión (35) se especifican en el aparato
40 110 de codificación y el aparato 120 de descodificación.
La matriz B* de (n+1) filas por (n+1) columnas, que es la información de clave maestra MSK, es almacenada de manera segura en el almacenamiento 133a del aparato 130 de generación de claves. La matriz B* es información secreta y se mantiene en secreto.
45 El vector n-dimensional v• = (v1, ..., vn) compuesto de los elementos del campo Fq finito, mostrado en la expresión (31), es almacenado en el almacenamiento 113a del aparato 110 de codificación, y el vector n-dimensional v• = (v1, ..., vn) y el vector n-dimensional w• = (w1, ..., wn), compuesto de los elementos del campo Fq finito, mostrados en la expresión (30), se almacenan en el almacenamiento 123a del aparato 120 de descodificación. Estos vectores
50 cumplen la relación siguiente.
55 La información de predicado y la información de atributo pueden ser w• = (w1, ..., wn) y v• = (v1, ..., vn), respectivamente. De manera alternativa, la información de predicado y la información de atributo pueden ser v• = (v1, ..., vn) y w• = (w1, ..., wn), respectivamente.
60 El almacenamiento 113a del aparato 110 de codificación almacena el texto no codificado M Є {0, 1}* a codificar (encriptar).
E10767167
27-08-2014
Procesamiento de codificación La Figura 5 es una vista que ilustra el procesamiento de codificación en la primera realización. A continuación se describirá el procesamiento de codificación en esta realización.
5 El generador 112a de números aleatorios en el aparato 110 de codificación (Figura 2) genera el número aleatorio de secuencia binario de k bits, y es almacenado en el almacenamiento 113a como la clave simétrica siguiente (etapa S101).
10
El texto no codificado M y la clave simétrica K leídos desde el almacenamiento son introducidos a la unidad 112b de
15 codificación de clave simétrica. La unidad 112b de codificación de clave simétrica los introduce a la función de codificación de clave simétrica Enc para obtener el siguiente texto codificado C1, y saca el texto codificado C1 (etapa S102).
20
El texto codificado C1 y la clave simétrica K son introducidos a la unidad 112c de operación de función. La unidad 112c de operación de función introduce la clave simétrica K y el texto codificado C1 a la función H1 resistente a 25 colisiones para obtener los siguientes elementos r y ρ del campo Fq finito y saca los elementos r y ρ (etapa S103).
- 30
- El elemento ρ del campo Fq finito es introducido a la unidad 112d de operación de grupo. La unidad 112d de operación de grupo calcula el siguiente valor de función S usando el elemento ρ, y saca el valor de función S (etapa S104).
- 35
-
imagen76
- 40
- El valor de función S y la clave simétrica K son introducidos a la unidad 112e de operación OR exclusivo. La unidad 112e de operación OR exclusivo usa la clave simétrica K y el valor de función
- 45
- que es la secuencia binaria de k bits obtenida introduciendo el valor de función S a la función R inyectiva, para obtener un valor OR exclusivo de los mismos como el texto codificado
- 50
-
imagen78
- y saca el texto codificado C3 (etapa S105).
- 55
- Los elementos r y ρ del campo Fq finito y el vector n-dimensional v• = (v1, ..., vn) son introducidos a la unidad 112f de operación vectorial. La unidad 112f de operación vectorial calcula el texto codificado
E10767167
27-08-2014
C2 ( etapa S106).
El texto codificado C1, el texto codificado C2 y el texto codificado C3 son introducidos en el transmisor 114. El transmisor 114 envía un valor que los contiene a través de la red 140 al aparato 120 de descodificación (etapa 5 S107).
Procesamiento de generación de información de claves El procesamiento de generación de información de clave se realiza especialmente cuando la información de clave D1* no está almacenada en el almacenamiento 123a del aparato 120 de descodificación. Cuando la información de
10 clave D1* está almacenada en el almacenamiento 123a del aparato 120 de descodificación, este procesamiento puede ser omitido.
La Figura 6 es una vista que ilustra el procesamiento de generación de información de clave en la primera realización. A continuación se describirá el procesamiento de generación de información de clave en esta 15 realización.
El vector n-dimensional w• = (w1, ..., wn) almacenado en el aparato 120 de descodificación (Figura 3) es leído e introducido al transmisor 124. El transmisor 124 envía el vector n-dimensional w• = (w1, ..., wn) a través de la red 140 al aparato 130 de generación de claves (etapa S111).
20 El vector n-dimensional w• = (w1, ..., wn) enviado es recibido por el receptor 134 del aparato 130 de generación de claves (Figura 4) (etapa S112). Esto hace que el generador 132a de números aleatorios del aparato 130 de generación de claves genere un número aleatorio α, que es un elemento del campo Fq finito y que saque el número aleatorio α (etapa S113).
25
30 El vector n-dimensional w• = (w1, ..., wn), el número aleatorio α y la matriz B* son introducidos a la unidad 132b de operación vectorial. Usando los mismos, la unidad 132b operación vectorial genera la siguiente información de clave D1*, y saca la información de clave D1* (etapa S114).
35
La información de clave D1* es introducida al transmisor 135. El transmisor 135 envía la información de clave D1* a través de la red 140 al aparato 120 de descodificación (etapa S115).
40 La información clave D1* enviada es recibida por el receptor 125 del aparato 120 de descodificación (Figura 3) y es almacenada en el almacenamiento 123a (etapa S116).
Procesamiento de descodificación
45 La Figura 7 es una vista que ilustra el tratamiento de descodificación en la primera realización. A continuación se describirá el procesamiento de descodificación en esta realización.
El receptor 125 del aparato 120 de descodificación (Figura 3) recibe el valor que contiene el texto codificado C1, el 50 texto codificado C2 Є G1n+1 y el texto C3 codificado (etapa S121).
El texto codificado C2 Є G1n+1 y la información de clave D1* son introducidos a la unidad 122a de operación de función bilineal. La unidad 122a de operación de función bilineal introduce el texto codificado C2 Є G1n+1 y la información de clave D1* a la función e bilineal para calcular el siguiente valor de función S ~ y saca el valor de
55 función S ~ (etapa S122).
E10767167
27-08-2014
de función R(S ~) que es la secuencia binaria obtenida introduciendo el valor de función S ~ en la función R inyectiva, y saca el valor OR exclusivo K ~ (etapa S123).
5
El valor OR exclusivo K ~ y el texto codificado C1 se introducen a la unidad 122c operación de función. La unidad 122c de operación de función introduce el valor OR exclusivo K ~ y el texto codificado C1 a la función H1 resistente a 10 colisiones, calcula los siguientes elementos r ~ y ρ ~, y saca los elementos r ~ y ρ ~ (etapa S124).
Los elementos vµ (µ = 1, ..., n) del vector n-dimensional v• y los elementos r ~ y ρ ~ se introducen a la unidad 122da de operación vectorial de la unidad 122d de decisión. Usando los mismos, la unidad 122da de operación vectorial calcula el siguiente valor de función C2~, y saca el valor de función C2~ (etapa S125).
El valor de función C2~ y el texto codificado C2 son introducidos a la unidad 122db de comparación de la unidad
25 122d de decisión. La unidad 122db de comparación determina si el valor de función C2~ es igual al texto codificado C2 y saca la determinación (etapa S126).
Si la determinación sacada desde la unidad 122db de comparación indica que el valor de función C2~ es igual al texto codificado C2, el valor OR exclusivo K ~ y el texto codificado son C1 son introducidos a la unidad 122e de
30 descodificación de clave simétrica, y la unidad 122e de descodificación de clave simétrica introduce el valor OR exclusivo K ~ y el texto codificado C1 a la función de descodificación de clave simétrica para obtener el siguiente valor descodificado M ~ y saca el valor descodificado M ~ (etapa S127).
35
Si la determinación sacada desde la unidad 122db de comparación indica que el valor de función C2~ difiere del texto codificado C2, la unidad 122e de descodificación de clave simétrica saca un mensaje de error (┴) (etapa 40 S128).
Segunda realización A continuación se describirá una segunda realización del esquema mejorado descrito anteriormente.
45 Visión general En primer lugar, se proporcionará una visión general de la segunda realización.
Procesamiento de codificación Un aparato de codificación para realizar el procesamiento de codificación realiza el siguiente procesamiento.
50 (ENC-111) Una unidad de selección selecciona un elemento ρ del campo Fq finito y saca el elemento ρ. (ENC-112) Una unidad de operación de grupo calcula el valor de función S = gT τ.ρЄ GT usando el elemento ρ y saca el valor de función S. (ENC-113) Una unidad de codificación de clave simétrica usa, como una clave simétrica K, el valor de
55 función R(S) obtenido introduciendo el valor de función S a la función R inyectiva, introduce la clave simétrica K y en texto no codificado M a la función de codificación de clave simétrica para obtener el texto codificado C1, y saca el texto codificado C1. (ENC-211) Una unidad de operación de función introduce el valor de función S y el texto codificado C1 a la función H resistente a colisiones para obtener el elemento r del campo Fq finito y saca el elemento r.
n n+1
60 (ENC-311) Una unidad de operación vectorial calcula el texto codificado C2 = r.(∑µ=1 vµ.bµ) + ρ.bn+1 Є G1 usando los elementos r y ρ y los elementos vµ (µ = 1, ..., n) del vector n-dimensional v• compuesto de los elementos del campo Fq finito, y saca el texto codificado C2.
5
10
15
20
25
30
35
40
45
50
55
60 E10767167
27-08-2014
Procesamiento de descodificación En un aparato de descodificación para realizar el procesamiento de descodificación, se ejecuta el siguiente procesamiento.
(DEC-101) Un valor que contiene el texto codificado C1 y el texto codificado C2 Є G1n+1 es introducido a una unidad de entrada. (DEC-201) Una unidad de operación de función bilineal introduce el texto codificado C2 Є G1n+1 y la información de clave D1* = α.(∑µ=1 n wµ.bµ*) + bn+1* a la función e bilineal para obtener el valor de función S ~ = e (C2, D1*) Є GT y saca el valor de función S ~. Si el producto interno w‚·v• = 0, se cumple S ~ = S debido a las características de las expresiones (3) y (26). (DEC-301) Una unidad de operación de función introduce el valor de función S ~ y el texto codificado C1 a la función H resistente a colisiones para calcular el elemento r ~ del campo Fq finito y saca el elemento r ~. Si Se cumple S~ = S y si el texto codificado C1 ha sido generado auténticamente, se cumple r ~ = r.
n n+1
(DEC-401) Una unidad de operación vectorial calcula el valor de función λ = C2-r ~.(∑µ=1 vµ.bµ) Є G1 usando el texto codificado C2, el elemento r ~ y los elementos vµ (µ = 1, ..., n) del vector n-dimensional v‚,y saca el valor de función λ. Si se cumple r ~ = r, se cumple λ = ρ.bn+1 Є G1n+1 . (DEC-402) La unidad de operación de función bilineal calcula el valor de función e (λ, D2*) introduciendo el valor de función λ y la información de clave auxiliar D2* = ∑µ=1 n βµ.bµ* a la función bilineal e, y saca el valor de función e(λ, D2*). Si se cumple λ = ρ.bn+1 Є G1n+1, se cumple e(λ, D2*) = 1 Є GT debido a la característica de la expresión (3). (DEC-403) Una unidad de comparación determina si el valor de función e (λ, D2*) satisface e (λ, D2*) = 1 Є GT y saca la determinación. En esta realización, la determinación de si se cumple o no la expresión (56) se realiza determinando si el valor de función e(λ, D2*) cumple o no e(λ, D2*) = 1 Є GT. Esta determinación corresponde a la determinación (DEC-4). (DEC-501) Si la determinación sacada desde la unidad de comparación indica que se cumple e(λ, D2*) = 1 Є GT, una unidad de descodificación de clave simétrica usa, como la clave simétrica K ~, el valor de función R(S) obtenido introduciendo el valor de función S ~ a la función R inyectiva, introduce la clave simétrica K ~ y el primer texto codificado C1 a la función de descodificación de clave simétrica para obtener el valor descodificado M~, y saca el valor descodificado M~. Si la determinación sacada desde la unidad de comparación indica que no se cumple e(λ, D2*) = 1 Є GT, se saca un mensaje de error (┴).
Seguridad contra CCA en la segunda realización Se describirá un caso en el que la estrategia asumida descrita anteriormente es aplicada al esquema de la segunda realización. En este ejemplo, τ = 1F, y el texto codificado obtenido mediante codificación de clave simétrica del texto no codificado M con la clave simétrica K es C1 = K (+) M.
[1] Un atacante recibe el parámetro público PK.
[2] El atacante pasa el vector v• y dos grupos de texto no codificado M0 y M1 al oráculo de codificación que tiene el parámetro público PK. El oráculo de codificación selecciona un elemento ρ del campo Fq finito (ENC111), calcula el valor de función S = gT τ.ρЄ GT (ENC-112), usando un valor de función R(S) como la clave simétrica K (ENC-113), y genera el siguiente texto codificado (ENC-113).
El oráculo de codificación introduce además el valor de función S y el texto codificado C1 a la función H resistente a colisiones para obtener el elemento r del campo Fq finito (ENC-211). A continuación, el oráculo
n
de codificación genera el texto codificado C2 = r.(∑µ=1 vµ.bµ) + ρ.bn+1 Є G1n+1 usando los elementos r y ρ y los elementos vµ (µ = 1, ..., n) del vector n-dimensional v• compuesto de los elementos del campo Fq finito ( ENC-311) y proporciona los dos grupos de texto codificado (C1, C2) al atacante.
[3] Debido a que el atacante no conoce la clave simétrica K = R(S) y/o el valor de función S (valor
n n+1
correspondiente a la clave simétrica K), el atacante no puede generar C2 '= r'.(∑µ=1 vµ.bµ) ρ.bn+1 Є G1 correspondiente al elemento r' del campo Fq finito, obtenido introduciendo el valor de función S y el texto codificado C1 (+) ∆M a la función H resistente a colisiones. Por lo tanto, el atacante pasa la siguiente combinación de C1 (+) ∆M y texto codificado C2 correspondiente al texto codificado C1, a un oráculo de descodificación.
E10767167
27-08-2014
El oráculo de descodificación al cual ha sido introducido el texto codificado de expresión (82) (DEC-101) calcula el valor de función S ~ = e(C2, D1*) Є GT (DEC-201), calcula el elemento r ~ ∆M del campo Fq finito introduciendo el valor de función S ~ y el texto codificado C1 (+) ∆M a la función H resistente a colisiones
~ n n+1
5 (DEC-301), y obtiene el valor de función λ∆M = C2-r ∆M.(∑µ=1 vµ.bµ) Є G1 (DEC-401). Debido a que se cumple r ~ ∆M ≠ r, se cumple λ∆M = (r r ~ ∆M).(∑µ=1 n vµ.bµ) + ρ.bn 1 ≠ρ.bn+1. El oráculo de descodificación calcula un valor de función e(λ∆M, D2*) (DEC-402) y determina si un valor de función (λ, D2*) cumple e(λ, D2*) = 1 Є GT (DEC-403). Aquí, debido a que se cumple λ∆M ≠ρ.bn+1, no se cumple e(λ, D2*) = 1 Є GT (DEC-403). Por lo tanto, el oráculo de descodificación saca un mensaje de error (┴).
10 [4]Debido a que el atacante no puede obtener el resultado descodificado de C1 (+) ∆M, el atacante no es capaz de sacar el bit' = 0 cuando el resultado descodificado es M0 (+) ∆M o sacar el bit' = 1 cuando el resultado descodificado es M1 (+)∆M. Por consiguiente, la estrategia del atacante fracasará.
Detalles
15 A continuación, se describirá detalladamente la segunda realización. Aunque en este ejemplo se cumple τ = 1F, esto no limita la presente invención, y τ puede ser un elemento del campo Fq finito diferente de 0F o 1F. Cada componente de la segunda realización idéntico a un componente de la primera realización se describirá usando la misma referencia numérica usada en la primera realización.
20 Estructura general La Figura 8 es una vista que ilustra la estructura de un sistema criptográfico de la segunda realización.
Tal como se muestra en la Figura 8, el sistema 2 criptográfico de esta realización incluye un aparato 210 de codificación, un aparato 220 de descodificación y un aparato 230 de generación de claves, que están conectados a
25 través de una red 140 de manera que pueden comunicarse entre sí.
Aparato de codificación La Figura 9 es una vista que ilustra la estructura del aparato 210 de codificación en la Figura 8. Las flechas en la Figura 9 indican el flujo de datos, pero se omiten las flechas para indicar la entrada y salida de datos a y desde una
30 unidad 111 de control y un almacenamiento 113b temporal.
Tal como se muestra en la Figura 9, el aparato 210 de codificación de esta realización incluye la unidad 111 de control, una unidad 212a de selección, una unidad 112d de operación de grupo, una unidad 212c de operación de función, una unidad 212e de generación de clave simétrica, una unidad 112b de codificación de clave simétrica, una 35 unidad 112f de operación vectorial, un almacenamiento113a, el almacenamiento 113b temporal y un transmisor
114.
El aparato 210 de codificación es, por ejemplo, un aparato especial que incluye un programa especial y un ordenador conocido o especializado provisto de una CPU, una RAM, una ROM o similar. La unidad 111 de control, 40 un generador 212a de números aleatorios (correspondiente a la unidad de selección), la unidad 112d operación de grupo, la unidad 212c operación de función, la unidad 212e generación de clave simétrica, la unidad 112b de codificación de clave simétrica y la unidad 112f de operación vectorial son unidades de procesamiento implementadas por la CPU que ejecuta el programa especial, por ejemplo. Al menos algunas de las unidades de procesamiento pueden ser un circuito integrado especializado: Por ejemplo, el generador 212a de números
45 aleatorios puede ser un circuito integrado de generación de números aleatorios conocido.
El aparato 210 de codificación ejecuta el procesamiento bajo el control de la unidad 111 de control. Cada grupo de datos sacado desde cada unidad de procesamiento es almacenado en el almacenamiento 113b temporal o el almacenamiento 113a, los datos almacenados en el almacenamiento 113b temporal o el almacenamiento 113a son
50 introducidos a una unidad de procesamiento y son usados para su procesamiento, cuando sea necesario, aunque estas descripciones de flujo de datos se simplifican a continuación.
Aparato de descodificación La Figura 10 es una vista que ilustra la estructura del aparato 220 de descodificación en la Figura 8. Las flechas en
55 la Figura 10 indican el flujo de datos, pero se omiten las flechas para indicar la entrada y la salida de datos a y desde una unidad 121 de control y el almacenamiento 123b temporal.
Tal como se muestra en la Figura 10, el aparato 220 de descodificación en esta realización incluye la unidad 121 de control, una unidad 122a operación de función bilineal, unidades 222b y 222c de operación de función, una unidad 60 222d de decisión, una unidad 122e de descodificación de clave simétrica, un almacenamiento 123a, el almacenamiento 123b temporal, un transmisor 124 y un receptor 125 (correspondiente a la unidad de entrada). La unidad 222d de decisión incluye una unidad 222da de operación vectorial, una unidad 222db de operación de
5
10
15
20
25
30
35
40
45
50
55
60 E10767167
27-08-2014
función bilineal y una unidad 222dc de comparación.
El aparato 220 de descodificación es, por ejemplo, un aparato especial que incluye un programa especial y un ordenador conocido o especializado provisto de una CPU, una RAM, una ROM o similar. La unidad 121 de control, la unidad 122a de operación de función bilineal, las unidades 222b y 222c de operación de función, la unidad 222d de decisión, y la unidad 122e de descodificación de clave simétrica son unidades de procesamiento implementadas por la CPU que ejecuta el programa especial, por ejemplo. Al menos algunas de las unidades de procesamiento pueden ser un circuito integrado especializado.
El aparato 220 de descodificación ejecuta el procesamiento bajo el control de la unidad 121 de control. Cada grupo de datos sacado desde cada unidad de procesamiento es almacenado en el almacenamiento 123b temporal o el almacenamiento 123a, los datos almacenados en el almacenamiento 123b temporal o el almacenamiento 123a son leídos, introducidos a una unidad de procesamiento, y usados para su procesamiento, cuando sea necesario, aunque estas descripciones de flujo de datos se simplifican a continuación.
Aparato de generación de claves La Figura 11 es una vista que ilustra la estructura del aparato 230 de generación de claves en la Figura 8. Las flechas en la Figura 11 indican el flujo de datos, pero se omiten las flechas para indicar la entrada y salida de datos a y desde una unidad 131 de control y el almacenamiento 133b temporal.
Tal como se muestra en la Figura 11, el aparato 230 de generación de claves de esta realización incluye la unidad 131 de control, un generador 232a de números aleatorios, las unidades 132b y 232c de operación vectorial, un almacenamiento 133a, el almacenamiento 133b temporal, un receptor 134 y un transmisor 135.
El aparato 230 de generación de claves es, por ejemplo, un aparato especial que incluye un programa especial y un ordenador conocido o especializado provisto de una CPU, una RAM, una ROM o similar. La unidad 131 de control, el generador 232a de números aleatorios y las unidades 132b y 232c de operación vectorial son unidades de procesamiento implementadas por la CPU que ejecuta el programa especial, por ejemplo. Al menos algunas de las unidades de procesamiento pueden ser un circuito integrado especializado.
El aparato 230 de generación de claves ejecuta el procesamiento bajo el control de la unidad 131 de control. Cada grupo de datos sacado desde cada unidad de procesamiento es almacenado en el almacenamiento 133b temporal
o el almacenamiento 133a, los datos almacenados en el almacenamiento 133b temporal o el almacenamiento 133a son leídos, introducidos a una unidad de procesamiento, y usados para su procesamiento, cuando sea necesario, aunque estas descripciones de flujo de datos se simplifican a continuación.
Ajustes preparatorios En el ajuste preparatorio de la segunda realización, el parámetro público PK, como en la primera realización, es especificado en el aparato 210 de codificación, el aparato 220 de descodificación y el aparato 230 de generación de claves. La función H2 resistente a colisiones mostrada en la expresión (34) es especificada en el aparato 210 de codificación y el aparato 220 de descodificación.
La matriz B* de (n+1) filas por (n+1) columnas, que es la información de clave maestra MSK, es almacenada de manera segura en el almacenamiento 133a del aparato 230 de generación de claves. La matriz B* es información secreta y se mantiene en secreto.
El vector n-dimensional v• = (v1, ... vn) compuesto de elementos del campo Fq finito, mostrado en la expresión (31), es almacenado en el almacenamiento 113a del aparato 110 de codificación, y el vector n-dimensional v• = (v1, ..., vn) y el vector n-dimensional w• = (w1, ..., wn), compuestos de los elementos del campo Fq finito, mostrados en la expresión (30), son almacenados en el almacenamiento 123a del aparato 120 de descodificación. Estos vectores cumplen la expresión (66). La información de predicado y la información de atributo pueden ser w• = (w1, ..., wn) y v• = (v1, ..., vn), respectivamente. De manera alternativa, la información de predicado y la información de atributo pueden ser v• = (v1, ..., vn) y w• = (w1, ..., wn), respectivamente.
El almacenamiento 113a del aparato 210 de codificación almacena el texto no codificado M Є {0, 1}* a codificar.
Procesamiento de codificación La Figura 12 es una vista que ilustra el procesamiento de codificación en la segunda realización. A continuación se describirá el procesamiento de codificación en esta realización.
El generador 212a de números aleatorios del aparato 210 de codificación (Figura 9) selecciona primero un elemento
E10767167
27-08-2014
- 5
- del campo Fq finito aleatoriamente, y saca el elemento ρ (etapa S201).
- 10
- El elemento ρ es introducido a la unidad 112d operación de grupo. Usando el elemento ρ, la unidad 112d de operación de grupo calcula el siguiente valor de función S, y saca el valor de función S (etapa S202).
15 El valor de función S es introducido a la unidad 212e de generación de clave simétrica. La unidad 212e de generación de clave simétrica introduce el valor de función S a la función R inyectiva para calcular la siguiente clave simétrica K, y almacena la clave simétrica K en el almacenamiento 113a (etapa S203).
20
La clave simétrica K y el texto no codificado M son introducidos a la unidad 112b de codificación de clave simétrica. La unidad 112b de codificación de clave simétrica introduce la clave simétrica K y el texto no codificado M a una 25 función de codificación de clave simétrica Enc para calcular el siguiente texto codificado C1, y saca el texto codificado C1 (etapa S204).
- 30
- 35
- El texto codificado C1 y el valor de función S son introducidos a la unidad 212c de operación de función. La unidad 212c operación de función introduce el valor de función S y el primer texto codificado C1 a la función H2 resistente a colisiones para calcular el siguiente elemento r del campo Fq finito, y saca el elemento r (etapa S205).
40 Los elementos de r y ρ y los elementos vµ (µ = 1, ..., n) del vector n-dimensional v• son introducidos a la unidad 112f de operación vectorial. La unidad 112f de operación vectorial calcula el siguiente texto codificado C2 usando los elementos vµ (µ = 1, ..., n) del vector n-dimensional v• y los elementos r y ρ, y saca el texto codificado C2 (etapa S206).
El texto codificado C1 y el texto codificado C2 son introducidos al transmisor 114. El transmisor 114 envía un valor 50 que los contiene a través de la red 140 al aparato 120 de descodificación (etapa S207).
Procesamiento de generación de información de clave El procesamiento de generación de información de clave se lleva a cabo especialmente cuando ni la información de clave D1* ni la información de clave auxiliar D2* están almacenadas en el almacenamiento 123a del aparato 220 de
55 descodificación. Cuando la información de clave D1* y la información de clave auxiliar D2* están almacenadas en el almacenamiento 123a del aparato 220 de descodificación, este procesamiento puede ser omitido.
La Figura 13 es una vista que ilustra el procesamiento de generación de información de clave en la segunda realización. A continuación se describirá el procesamiento de generación de información de clave en esta 60 realización.
E10767167
27-08-2014
introducido al transmisor 124. El transmisor 124 envía el vector n-dimensional w• = (w1, ..., wn) a través de la red 140 al aparato 230 de generación de claves (etapa S111).
El vector n-dimensional w• = (w1, ..., wn) enviado es recibido por el receptor 134 del aparato 230 de generación de
5 claves (Figura 11) (etapa S112). Esto hace que el generador 232a de números aleatorios y la unidad 132b de operación vectorial del aparato 230 de generación de claves generen la información de clave D1* mostrada en la expresión (75) mediante la realización de procesamiento en las etapas S113 y S114 de la primera realización y saquen la información de clave D1*.
10 El generador 232a de números aleatorios genera un número aleatorio
15 de un elemento del campo Fq finito y saca el número aleatorio βµ (etapa S215).
El número aleatorio βµ y la matriz B* son introducidos a la unidad 232c de operación vectorial. Usando los mismos, la unidad 232b de operación vectorial genera la siguiente información de clave auxiliar D2*, y saca la información de 20 clave auxiliar D2* (etapa S216).
25 La información de clave D1* y la información de clave auxiliar D2* son introducidas al transmisor 135. El transmisor 135 envía la información de clave D1* y la información de clave auxiliar D2* a través de la red 140 al aparato 220 de descodificación (etapa S217).
30 La información de clave D1* y la información de clave auxiliar D2* enviadas son recibidas por el receptor 125 del aparato 220 de descodificación (Figura 10) y son almacenadas en el almacenamiento 123a (etapa S218).
Procesamiento de descodificación La Figura 14 es una vista que ilustra el procesamiento de descodificación en la segunda realización. A continuación 35 se describirá el procesamiento de descodificación en esta realización.
El receptor 125 del aparato 220 de descodificación (Figura 10) recibe el valor que contiene el texto codificado C1 y el texto codificado C2 Є G1n+1 (etapa S221).
40 El texto codificado C2 Є G1n+1 y la información de clave D1* son introducidos a la unidad 122a de operación de función bilineal. La unidad 122a de operación de función bilineal introduce el texto codificado C2 Є G1n+1 y la información de clave D1* a una función e bilineal para calcular el valor de función siguiente S ~ y saca el valor de función S ~ (etapa S222).
45
El valor de función S ~ y el texto codificado C1 son introducidos a la unidad 222c operación de función. La unidad 50 222c de operación de función calcula el siguiente elemento r ~ del campo Fq finito introduciendo el valor de función S~
y el primer texto codificado C1 a la función H2 resistente a colisiones y saca el elemento r ~ (etapa S223).
55
El texto codificado C2, el elemento r ~ y los elementos vµ (µ = 1, ..., n) del vector n-dimensional v• son introducidos a la unidad de 222da de operación vectorial de la unidad 222d de decisión. Usando el texto codificado C2, el elemento r~ y los elementos vµ (µ = 1, ..., n) del vector n-dimensional v‚, la unidad 222da de operación vectorial calcula el
60 siguiente valor de función λ, y saca el valor de función λ (etapa S224).
E10767167
27-08-2014
5 El valor de función λ y la información de clave auxiliar D2* son introducidos a la unidad 222db de operación de función bilineal de la unidad 222d de decisión. La unidad 222db de operación de función bilineal introduce el valor de función λ y la información de clave auxiliar D2* a la función e bilineal para calcular el siguiente valor de función (λ, D2*), y saca el valor de función e (λ, D2*) (etapa S225).
10
15 El valor de función e (λ, D2*) es introducido a la unidad 222dc de comparación de la unidad 222d de decisión. La unidad 222dc de comparación determina si el valor de función e(λ, D2*) cumple la relación siguiente, y saca la determinación (etapa S226).
Si la determinación sacada desde la unidad 222dc de comparación indica que se cumple e(λ, D2*) = 1 Є GT, el valor de función S ~ es introducido a la unidad 222b de operación de función. La unidad 222b operación de función 25 introduce el valor de función S ~ a la función R inyectiva para obtener la siguiente clave simétrica K ~, y saca la clave simétrica K ~ (etapa S227).
30
La clave simétrica K ~ y el texto codificado C1 son introducidos a la unidad 222b de descodificación de clave simétrica, y la unidad 222b de descodificación de clave simétrica introduce la clave simétrica K ~ y el texto codificado C1 a la función de descodificación de clave simétrica Dec para calcular el siguiente valor descodificado M ~, y saca el
35 valor descodificado M ~ (etapa S228).
Si la determinación sacada desde la unidad 222dc de comparación indica que no se cumple e(λ, D2*) = 1 Є GT, la unidad 122e de descodificación de clave simétrica saca un mensaje de error (┴) (etapa S229) .
45 Modificaciones, etc. La presente invención no se limita a las realizaciones descritas anteriormente. Por ejemplo, aunque la clave simétrica K en la etapa S101 de la primera realización es un número aleatorio de secuencia binaria, la clave simétrica K puede ser un valor seleccionado de entre una pluralidad de secuencias binarias predeterminadas según
50 una regla determinada. Aunque α en la etapa S113 de la primera realización es un número aleatorio que es el elemento del campo Fq finito, α puede ser seleccionado de entre los elementos del campo Fq finito según una regla determinada. Los valores generados a partir de los otros números aleatorios pueden ser modificados de manera similar.
55 Los valores de función obtenidos por la expresión (69) se usan directamente como r y ρ en la primera realización. Los valores de función obtenidos introduciendo los valores de función obtenidos por la expresión (69) a una función adicional pueden ser usados como r y ρ. En ese caso, los valores de función obtenidos introduciendo los valores de función obtenidos por la expresión (78) a la función adicional pueden ser usados como r ~ y ρ ~. El valor de función obtenido por la expresión (87) se usa directamente como r en la segunda realización. Un valor de función obtenido
60 introduciendo el valor de función obtenido por la expresión (87) a una función adicional puede ser usado como r. En ese caso, un valor de función obtenido introduciendo el valor de función obtenido por la expresión (92) a la función adicional se usa como r ~.
5
10
15
20
25
30
35
40
45 E10767167
27-08-2014
En el procedimiento de descodificación en la primera realización y la segunda realización, se saca un mensaje de error cuando no se cumple la condición de determinación en la etapa S126 o S226. Cuando la condición de determinación no se cumple, el aparato de descodificación puede sacar un número aleatorio no relacionado con el resultado descodificado o puede no sacar nada.
Los diversos tipos de procesamiento descritos anteriormente no deben ser ejecutados siempre en el orden en el que se han descrito y puede ser realizados en paralelo o de manera independiente según las capacidades de procesamiento de las unidades que ejecutan el procesamiento o cuando sea necesario. Por ejemplo, el procesamiento en las etapas S105 y S106 en la primera realización puede ser ejecutado en paralelo, y el procesamiento en la etapa S105 puede ser ejecutado después del procesamiento en la etapa S106.
Cada operación definida sobre el campo Fq finito puede ser reemplazada por una operación definida en un anillo Zq finito de orden q. Un ejemplo de sustitución de cada operación definida sobre el campo Fq finito por una operación definida en el anillo Zq finito es un método que permite que q no sea un número primo o una potencia de un número primo. Por supuesto, es posible la adición de modificaciones dentro del alcance de la presente invención.
Cuando la estructura descrita anteriormente es implementada por un ordenador, los detalles de procesamiento de las funciones que deberían ser proporcionadas por cada aparato se describen en un programa. Cuando el programa es ejecutado por un ordenador, las funciones de procesamiento descritas anteriormente se implementan en el ordenador.
El programa que contiene los detalles de procesamiento puede ser grabado en un medio de almacenamiento legible por ordenador. El medio de almacenamiento legible por ordenador puede ser cualquier tipo de medio, tal como un dispositivo de almacenamiento magnético, un disco óptico, un medio de almacenamiento magneto-óptico y una memoria basada en semiconductores.
El programa es distribuido mediante la venta, transferencia o alquiler de un medio de grabación portátil, tal como un DVD o un CD-ROM que tiene el programa grabado en el mismo, por ejemplo. El programa puede ser distribuido también almacenando el programa en una unidad de almacenamiento de un equipo servidor y transfiriendo el programa desde el ordenador servidor a otro ordenador a través de la red.
Un ordenador que ejecuta este tipo de programa primero almacena el programa grabado en el medio de grabación portátil o el programa transferido desde el ordenador servidor en su unidad de almacenamiento. A continuación, el ordenador lee el programa almacenado en su unidad de almacenamiento y ejecuta el procesamiento según el programa leído. En una forma diferente de ejecución del programa, el equipo puede leer el programa directamente desde el medio de grabación portátil y puede ejecutar el procesamiento según el programa, o el ordenador puede ejecutar el procesamiento según el programa cada vez que el ordenador recibe el programa transferido desde el servidor ordenador. De manera alternativa, el procesamiento puede ser ejecutado por un servicio denominado proveedor de servicios de aplicaciones (Application Service Provider, ASP), en el que la función de procesamiento es implementada simplemente proporcionando una instrucción de ejecución de programa y obteniendo los resultados sin transferir el programa desde el ordenador servidor al ordenador.
DESCRIPCIÓN DE LOS NÚMEROS DE REFERENCIA
1, 2: Sistemas criptográficos 110, 210: Aparatos de codificación 120, 220: Aparatos de descodificación.
Claims (33)
10
15
20
25
30
35
40
45
50
55
60 E10767167
27-08-2014
REIVINDICACIONES
- 1.
- Un aparato (110, 210) de codificación (encriptación), que comprende:
una unidad (112b) de codificación de clave simétrica adaptado para calcular un texto codificado C1, introduciendo un de texto no codificado M y una clave simétrica K a una función de codificación de clave simétrica y para sacar el texto codificado C1; una unidad (112c, 212c) de operación de función adaptada para calcular un valor de función de una función H resistente a colisiones introduciendo un valor que contiene un valor correspondiente a la clave simétrica K y un valor correspondiente al texto codificado C1 a la función H; y una unidad (112f) de operación vectorial adaptada para calcular un segundo texto codificado C2 = r.(∑µ=1 n vµ.bµ) + ρ.bn+1 Є G1n+1 usando un valor r correspondiente al valor de función de la función H, un valor ρ correspondiente a la clave simétrica K, elementos vµ donde µ = 1, ..., n y n ≥ 1 de un vector n-dimensional v• = (v1, ..., vn), y vectores base n+1 dimensionales bi Є G1n+1, donde i = 1, ..., n+1, compuestos de n+1 elementos de un grupo cíclico G1 y para sacar el texto codificado C2.
- 2.
- Aparato (110) de codificación según la reivindicación 1, en el que la clave simétrica K es una secuencia binaria; y
la unidad de operación de función está adaptada para calcular los valores r y ρ introduciendo la clave simétrica K y el texto codificado C1 a la función H resistente a colisiones; en el que el aparato (110) de codificación comprende además: una unidad (112d) de operación de grupo adaptada para calcular un valor de función S = gT τ.ρЄ GT usando el valor ρ, donde gT es un generador de un grupo cíclico GT y τ es una constante diferente a un elemento de identidad aditivo; y una unidad (112e) de operación OR exclusivo adaptada para calcular un tercer texto codificado C3 y para sacar el tercer texto codificado C3, en el que el tercer texto codificado C3 es un OR exclusivo de un valor de función R(S) y la clave simétrica K, en el que el valor de función R(S) es una secuencia binaria obtenida introduciendo el valor de función S a una función R inyectiva
- 3.
- Aparato (210) de codificación según la reivindicación 1, que comprende además:
una unidad (212a) de selección adaptada para seleccionar el valor ρ; una unidad (112d) de operación de grupo adaptada para calcular un valor de función S = gT τ.ρЄ GT usando el valor ρ, donde gT es un generador de un grupo cíclico GT y τ es una constante diferente a un elemento de identidad aditivo; y una unidad (212e) de generación de clave simétrica adaptada para calcular un valor de función R(S) como la clave simétrica K introduciendo el valor de función S a una función R inyectiva, en el que la unidad (212c) de operación de función está adaptada para calcular el valor r introduciendo el valor de función S y el texto codificado C1 a la función H resistente a colisiones
- 4.
- Aparato (110) de codificación según la reivindicación 2, en el que la función R inyectiva es una función cuasi aleatoria.
- 5.
- Aparato (210) de codificación según la reivindicación 3, en el que la función R inyectiva es una función cuasi aleatoria.
- 6.
- Aparato (110, 210) de codificación según la reivindicación 1, en el que la función H resistente a colisiones es una función cuasi aleatoria.
- 7.
- Aparato (110) de codificación según la reivindicación 2, en el que la función H resistente a colisiones es una función cuasi aleatoria.
- 8.
- Aparato (210) de codificación según la reivindicación 3, en el que la función H resistente a colisiones es una función cuasi aleatoria.
- 9.
- Aparato (110) de codificación según la reivindicación 2, en el que el grupo cíclico G1 y el grupo cíclico GT son conjuntos en los que se define una función e bilineal no degenerada, en el que la función e bilineal no degenerada saca un único elemento del grupo cíclico GT en respuesta a la introducción de n+1 elementos γL, donde L = 1, ..., n+1, del grupo cíclico G1 y n+1 elementos γL*, donde L = 1, ..., n+1, de un grupo cíclico G2.
- 10.
- Aparato (110) de codificación según la reivindicación 9, en el que el los valores r y ρ y la constante τ son
elementos de un campo Fq finito; y 37
10
15
20
25
30
35
40
45
50
55
60 E10767167
27-08-2014
el orden de cada uno de los grupos cíclicos G1 y G2 es igual al orden q del campo Fq finito, donde q ≥ 1.
- 11.
- Aparato (110) de codificación según la reivindicación 9 o 10, en el que la función e bilineal saca un elemento e = Πi=1 n+1 Par (γL, γL*) del grupo cíclico GT en respuesta a la introducción de los n+1 elementos γL, donde L = 1, ..., n+1, del grupo cíclico G1 y los n+1 elementos γL*, donde L = 1, ..., n+1, del grupo cíclico G2, donde Par es una función bilineal no degenerada que traduce una combinación de un único elemento del grupo cíclico G1 y un único elemento del grupo cíclico G2 a un único elemento del grupo cíclico GT.
- 12.
- Aparato (210) de codificación según la reivindicación 3, en el que el grupo cíclico G1 y el grupo cíclico GT son conjuntos en los que se define una función e bilineal no degenerada, en el que la función e bilineal no degenerada saca un único elemento del grupo cíclico GT en respuesta a la introducción de n+1 elementos γL, donde L = 1, ..., n+1, del grupo cíclico G1 y n+1 elementos γL*, donde L = 1, ..., n+1, de un grupo cíclico G2.
- 13.
- Aparato (210) de codificación según la reivindicación 12, en el que los valores r y ρ y la constante τ son elementos de un campo Fq finito; y el orden de cada uno de los grupos cíclicos G1 y G2 es igual al orden q del campo Fq finito, donde q ≥ 1.
- 14.
- Aparato (210) de codificación según la reivindicación 12 o 13, en el que la función e bilineal saca un elemento e = Πi=1 n+1 Par (γL, γL*) del grupo cíclico GT en respuesta a la introducción de los n+1 elementos γL, donde L = 1, ..., n+1, del grupo cíclico G1 y los n+1 elementos γL*, donde L = 1, ..., n+1, del grupo cíclico G2, donde Par es una función bilineal no degenerada que traduce una combinación de un único elemento del grupo cíclico G1 y un único elemento del grupo cíclico G2 a un único elemento del grupo cíclico GT.
- 15.
- Un aparato (120, 220) de descodificación (desencriptación) que comprende:
una unidad (125) de entrada a la cual se introducen un valor que contiene un texto codificado C1 y un segundo texto codificado C2 Є G1n+1; una unidad (122a) de operación de función bilineal adaptada para calcular un valor de función S ~ = e(C2, D1*)
n+1 n+1
Є GT introduciendo el segundo texto codificado C2 Є G1 y la información de clave D1* Є G2 auna función e bilineal; una unidad (122c, 222c) de operación de función adaptada para calcular un valor de función de una función H resistente a colisiones introduciendo un valor correspondiente al valor de función S ~ y el texto codificado C1 a la función H; y una unidad (122d, 222d) de decisión adaptada para determinar si el segundo texto codificado C2, un valor ρ ~, un valor r ~ correspondiente al valor de función de la función H, los elementos vµ (µ = 1,. .., n) de un vector n
n
dimensional v• = (v1, ..., vn), y los vectores base bi Є G1n+1, donde i = 1, ..., n+1, cumplen C2 = r ~.(∑µ=1 vµ.bµ)
+ ρ ~.bn+1 Є G1n+1 y para sacar un resultado de la determinación, en el que la función e bilineal es una función bilineal no degenerada que saca un único elemento de un grupo cíclico GT en respuesta a la introducción de n+1 elementos γL, donde L = 1, ..., n+1 y n ≥ 1, de un grupo cíclico G1 y n+1 elementos de γL*, donde L = 1, ..., n+1, de un grupo cíclico G2; en el que cada uno de los vectores base bi Є G1n+1, donde i = 1, ..., n+1, es un vector base n+1 dimensional compuesto de n+1 elementos del grupo cíclico G1; en el que cada bi* Є G2n+1, donde i = 1, ..., n+1, es un vector base n+1 dimensional compuesto de n+1 elementos del grupo cíclico G2; un valor de función obtenido introduciendo los elementos de los vectores base bi Є G1n+1, donde i = 1, ..., n+1, y los elementos de los vectores base bj Є G2n+1, donde j = 1, ..., n+1, a
τ.δ(i,j) Є GT
la función e bilineal se expresa como gT usando la función delta de Kronecker δ(i, j); τ es una constante diferente de un elemento de identidad aditivo; gT es un generador del grupo cíclico GT; w• = (w1, ..., wn) es un vector n dimensional; wµ, donde µ = 1, ..., n, son elementos del vector n-dimensional w• = (w1,
n
..., wn); α es un valor seleccionado; y la información de clave D1* Є G2n+1 es D1* = α.(∑µ=1 wµ.bµ*) + bn+1* Є
G2n+1 .
16. Aparato (120) de descodificación según la reivindicación 15, en el que el valor que contiene el texto codificado C1 y el segundo texto codificado C2 Є G1n+1, introducido a la unidad (125) de entrada, contiene además un tercer texto codificado C3 que es una secuencia binaria; el aparato (120) de descodificación comprende además una unidad (122b) de operación OR exclusivo adaptada para calcular un valor OR exclusivo K ~ del tercer texto codificado C3 y un valor de función R(S ~) que es una secuencia binaria obtenida introduciendo el valor de función S ~ a una función R inyectiva; la unidad (122c) de operación de función está adaptada para calcular los valores r ~ y ρ ~ introduciendo el valor OR exclusivo K ~ y el texto codificado C1 a la función H resistente a colisiones; y la unidad (122d) de decisión incluye:
una unidad (122da) de operación vectorial adaptada para calcular un valor de función C2~ = r ~.(∑µ=1 n vµ.bµ) + ρ ~.bn+1 Є G1n+1 usando los elementos vµ (µ = 1, ..., n) del vector n-dimensional v• y los valores r ~ y ρ ~; y 38
E10767167
27-08-2014
una unidad (122db) de comparación adaptada para determinar si el valor de función C2~ es igual al segundo texto codificado C2;
el aparato de descodificación comprende además una unidad (122e) de descodificación de clave simétrica
5 adaptada para usar el valor OR exclusivo K ~ como una clave simétrica, para calcular un valor descodificado M ~ introduciendo el valor OR exclusivo K ~ y el texto codificado C1 a una función de descodificación de clave simétrica, y para sacar el valor descodificado M ~, cuando la determinación por parte de la unidad de comparación indica que el valor de función C2~ es igual al segundo texto codificado C2.
10 17. Aparato (220) de descodificación según la reivindicación 15, en el que la unidad (222c) de operación de función está adaptada para calcular el valor r ~ introduciendo el valor de función S ~ y el texto codificado C1 a la función H resistente a colisiones; y la unidad (222d) de decisión incluye:
15 una unidad (222da) de operación vectorial adaptada para calcular un valor de función λ = C2-r ~.∑µ=1 n vµ.bµ Є G1n+1 usando el segundo texto codificado C2, el valor r ~ y los elementos vµ, donde µ = 1, ..., n, del vector n dimensional v‚; una segunda unidad (222db) de operación de función bilineal adaptada para calcular un valor e de función (λ, D2*) introduciendo el valor de función λ y la información de clave auxiliar D2* = ∑µ=1 nβµ.bµ* relacionada con
20 un valor βµ, donde µ = 1, ..., n, a la función e bilineal; y una unidad (222dc) de comparación adaptada para determinar si el valor de función e(λ, D2*) cumple e(λ, D2*) = 1 Є GT;
el aparato (220) de descodificación comprende además una unidad (122e) de descodificación de clave simétrica
25 que está adaptada para usar un valor de función R(S ~) obtenido introduciendo el valor de función S ~ a una función R inyectiva como una clave simétrica K ~ si la determinación por la unidad de comparación indica que se cumple e(λ, D2*) = 1 Є GT, para calcular un valor descodificado M ~ introduciendo la clave simétrica K ~ y el texto codificado C1 a una función de descodificación de clave simétrica, y para sacar el valor descodificado M ~.
30 18. Aparato (120, 220) de descodificación según la reivindicación 16 o 17, en el que la función R inyectiva es una función cuasi aleatoria.
19. Aparato (120, 220) de descodificación según cualquiera de las reivindicaciones 15 a 17, en el que la función H
resistente a colisiones es una función cuasi aleatoria. 35
20. Aparato (120, 220) de descodificación según una cualquiera de las reivindicaciones 15 a 17, en el que el vector base bi cumple bi = ∑j=1 n+1 χi,j.aj, donde χi,j indica el elemento en la i-ésima fila y la j-ésima columna de una matriz X de (n+1) filas por (n+1) columnas, y ai Є G1n+1, donde i = 1, ..., n+1, indica un vector base n+1 dimensional que tiene κ1.g1 como el i-ésimo elemento y que tiene los elementos identidad del grupo cíclico G1 como los n elementos
40 restantes, en el que g1 es un generador del grupo cíclico G1 y κ1 es una constante diferente de un elemento de identidad aditivo; y el vector base bi* cumple bi* = ∑j=1 n+1 χi,j*.aj* donde χi,j* indica el elemento en la i-ésima fila y la j-ésima columna de una matrix X* de (n+1) filas por (n+1) columnas y ai* Є G2n+1, donde i = 1, ..., n+1, indica un vector base n+1 dimensional que tiene κ2.g2 como el i-ésimo elemento y que tiene los elementos identidad del grupo cíclico G2 como
45 los n elementos restantes, en el que g2 es un generador del grupo cíclico G2 y κ2 es una constante diferente al elemento de identidad aditivo.
21. Aparato (120, 220) de descodificación según una cualquiera de las reivindicaciones 15 a 17, en el que los
valores r ~ y ρ ~, la constante τ y el valor α son elementos de un campo Fq finito; y 50 el orden de cada uno de los grupos cíclicos G1 y G2 es igual al orden q del campo Fq finito, donde q ≥ 1.
22. Aparato (120, 220) de descodificación según una cualquiera de las reivindicaciones 15 a 17, en el que la función e bilineal saca un elemento e=ΠL=1 n+1 Par (γL, γL*) del grupo cíclico GT en respuesta a la introducción de los n+1 elementos γL, donde L = 1, ..., n+1, del grupo cíclico G1 y los n+1 elementos γL*, donde L = 1, ..., n+1, del grupo
55 cíclico G2, donde Par es una función bilineal no degenerada que traduce una combinación de un único elemento del grupo cíclico G1 y un único elemento del grupo cíclico G2 a un único elemento del grupo cíclico GT.
23. Un método de codificación que comprende:
60 (A) una etapa de cálculo, en unos primeros medios de un aparato (110, 210) de codificación, de un texto codificado C1, introduciendo un texto no codificado M y una clave simétrica K a una función de codificación de clave simétrica y sacando el texto codificado C1;
10
15
20
25
30
35
40
45
50
55
60 E10767167
27-08-2014
- (B)
- una etapa de cálculo, en unos segundos medios del aparato (110, 210) de codificación, de un primer valor de función de una función H resistente a colisiones introduciendo un valor que contiene un valor correspondiente a la clave simétrica K y un valor correspondiente al texto codificado C1 a la función H; y
- (C)
- una etapa de cálculo, en unos terceros medios del aparato (110, 210) de codificación, de un segundo
n
texto codificado C2 = r.(∑µ=1 vµ.bµ) + ρ.bn+1 Є G1n+1 usando un valor r correspondiente al primer valor de función de la función H, un valor ρ correspondiente a la clave simétrica K, elementos vµ, donde µ = 1, ..., n y n 1, de un vector n dimensional v• = (v1, ..., vn), y vectores base n+1 dimensionales bi Є G1n+1, donde i = 1, ..., n+1, compuestos de n+1 elementos de un grupo cíclico G1 y sacando el segundo texto codificado C2;
24. Método de codificación según la reivindicación 23, en el que la clave simétrica K es una secuencia binaria; y la etapa (B) incluye una etapa de cálculo, en unos cuartos medios del aparato de codificación, de los valores r y ρ introduciendo la clave simétrica K y el texto codificado C1 a la función H resistente a colisiones; en el que el método de codificación comprende:
τ.ρЄ
una etapa de cálculo, en unos quintos medios del aparato de codificación, de un valor de función S = gT GT usando el valor ρ; en el que gT es un generador del grupo cíclico GT y τ es una constante diferente de un elemento de identidad aditivo; t una etapa de cálculo, en unos sextos medios del aparato de codificación, de un tercer texto codificado C3 y sacar el tercer texto codificado C3, en el que el tercer texto codificado C3 es un valor OR exclusivo de un valor de función R(S) y la clave simétrica K, en el que el tercer texto codificado C3 es un secuencia binaria obtenida introduciendo el valor de función S a una función R inyectiva.
25. Método de codificación según la reivindicación 23, que comprende además:
una etapa de selección del valor ρ en unos séptimos medios del aparato de codificación;
τ.ρЄ
una etapa de cálculo, en unos octavos medios del aparato de codificación, de un valor de función S = gT GT usando el valor ρ, donde gT es un generador de un grupo cíclico GT y τ es una constante diferente de un elemento de identidad aditivo; y una etapa de cálculo, en unos novenos medios del aparato de codificación, de un valor de función R(S) como la clave simétrica K introduciendo el valor de función S a un función R inyectiva en el que la etapa (B) incluye una etapa de cálculo, en unos décimos medios del aparato de codificación, del valor r introduciendo el valor de función S y el texto codificado C1 a la función H resistente a colisiones.
26. Método de descodificación que comprende:
- (D)
- una etapa de introducción de un valor que contiene un texto codificado C1 y un segundo texto codificado C2 Є G1n+1 a un aparato (120, 220) de descodificación;
- (E)
- una etapa de cálculo, en unos primeros medios del aparato (120, 220) de descodificación, de un valor de función S ~ = e(C2, D1*) Є GT introduciendo el segundo texto codificado C2 Є G1n+1 y la información de clave D1* a una función e bilineal;
- (F)
- una etapa de cálculo, en unos segundos medios del aparato de descodificación, de un segundo valor de función de la función H resistente a colisiones introduciendo un valor correspondiente al valor de función S ~ y el texto codificado C1 a la función H; y
- (G)
- una etapa de determinación, en el aparato (120, 220) de descodificación, de si el segundo texto codificado C2, un valor r ~ correspondiente al segundo valor de función de la función H, un valor ρ ~, los elementos vµ, (µ = 1, …, n) de un vector n-dimensional v‚= (v1, …, Vn), y los vectores base bi Є G1n+1, donde
n
i = 1, ..., n+1, cumplen C2 = r ~.(∑µ=1 vµ.bµ) + ρ ~.bn+1 Є G1n+1, y sacar un resultado de la determinación, en el que la función e bilineal es una función bilineal no degenerada que saca un único elemento de un grupo cíclico GT en respuesta a la introducción de n+1 elementos γL, donde L = 1, ..., n+1 y n ≥ 1, de un grupo cíclico G1 y n+1 elementos γL*, donde L = 1, ..., n+1, de un grupo cíclico G2; cada uno de los vectores base bi Є G1n+1 , donde i = 1, ..., n+1) es un vector base n+1 dimensional compuesto de n+1 elementos del grupo cíclico G1; cada uno de los vectores base bi* Є G2n+1 , donde i = 1, ..., n+1, es un vector base n+1 dimensional compuesto de n+1 elementos del grupo cíclico G2; un valor de función obtenido introduciendo los elementos de los vectores base bi Є G1n+1, donde i = 1, ..., n+1, y los elementos de los vectores base bj* Є G2n+1, donde j = 1, ..., n+1, a la función e bilineal se expresa como gT τ.δ(i,j) Є GT usando la función delta de Kronecker δ(i, j); τ es una constante diferente de un elemento de identidad aditivo; gT es un generador del grupo cíclico GT; w• = (w1, ..., wn) es un vector n-dimensional; wµ, donde µ = 1, ..., n, son elementos del vector n-dimensional w•
n
= (w1, ..., wn); α es un valor seleccionado y la información de clave D1* Є G1n+1 es D1* = α.(∑µ=1 wµ.bµ*) + bn+1* Є G2n+1 .
27. Método de descodificación según la reivindicación 26, en el que el valor que contiene el texto codificado C1 y el
E10767167
27-08-2014
segundo texto codificado C2 Є G1n+1, introducido en la etapa (D), contiene además un tercer texto codificado C3 que es una secuencia binaria; en el que el método de descodificación comprende además una etapa de cálculo, en unos cuartos medios del aparato de descodificación, de un valor OR exclusivo K ~ del tercer texto codificado C3 y un valor de función R(S ~)
5 que es una secuencia binaria obtenida introduciendo el valor de función S ~ a una función R inyectiva; la etapa (F) incluye una etapa de cálculo, en unos quintos medios del aparato de descodificación, de los valores r ~ y
ρ ~
introduciendo el valor OR exclusivo K ~ y el texto codificado C1 a la función H resistente a colisiones; y la etapa (g) incluye:
10 una etapa (G-1) de cálculo, en unos sextos medios del aparato de descodificación, de un valor de función
~n
C2 = r ~.(∑µ=1 vµ.bµ) + ρ ~.bn+1 Є G1n+1 usando los elementos vµ, donde µ = 1, ..., n, del vector n-dimensional v• y los valores r ~ y ρ ~; y una etapa (G-2) de determinación, en unos séptimos medios del aparato de descodificación, de si el valor de función C2~ es igual al segundo texto codificado C2,
15 en el que el método de codificación comprende además una etapa de uso, en unos octavos medios del aparato de descodificación, del valor el valor OR exclusivo K ~ como una clave simétrica, calcular un valor descodificado M ~ introduciendo el valor OR excusivo K ~ y el texto codificado C1 a una función de descodificación de clave simétrica, y sacar el valor descodificado M ~, cuando la determinación en la etapa (G-2) indica que el valor de función C2~ es
20 igual al segundo texto codificado C2.
28. Método de descodificación según la reivindicación 26, en el que la etapa (F) incluye una etapa de cálculo, en unos novenos medios del aparato de descodificación, del valor r ~ introduciendo el valor de función S ~ y el texto codificado C1 a la función H resistente a colisiones; y
25 la etapa (G) incluye:
(G-1) una etapa de cálculo, en unos décimos medios del aparato de descodificación, de un valor de función λ
n
= C2-r ~.(∑µ=1 vµ.bµ) Є G1n+1 usando el segundo texto codificado C2, el valor r ~ y los elementos vµ, donde µ = 1, ..., n, del vector n-dimensional v‚;
30 (G-2) una etapa de cálculo, en unos décimo primeros medios del aparato de descodificación, de un valor de función e(λ, D2*) introduciendo el valor de función λ y la información de clave auxiliar D2* = ∑µ=1 nβµ.bµ* relacionada con un valor βµ, donde µ = 1, ..., n, a la función e bilineal; y (G-3) una etapa de determinación, en unos décimo segundos medios del aparato de descodificación, de si el valor de función e(λ, D2*) cumple e(λ, D2*) = 1 Є GT;
35 en el que el método de descodificación comprende además una etapa de usar, en unos décimo terceros medios del aparato de descodificación, de un valor de función R(S ~) obtenido introduciendo el valor de función S ~ a una función R inyectiva, como una clave simétrica, calcular un valor descodificado M ~ introduciendo la clave simétrica K ~ y el texto codificado C1 a una función de descodificación de clave simétrica, y sacar el valor descodificado M ~, cuando la
40 determinación en la etapa (G-3) indica que se cumple e(λ, D2*) = 1 Є GT.
29. Un método de seguridad que comprende:
las etapas del método de codificación según la reivindicación 23; y 45 las etapas del método de descodificación según la reivindicación 26.
30. Método de seguridad según la reivindicación 29, en el que la etapa (B) incluye una etapa de cálculo de los valores r y ρ introduciendo la clave simétrica K y el texto codificado C1 a la función H resistente a colisiones; la etapa (C) incluye:
50 una etapa de cálculo, en el aparato de codificación, de un valor de función S = gT τ.ρЄ GT usando el valor ρ; una etapa de cálculo, en el aparato de codificación, de un tercer texto codificado C3 y sacar el tercer texto codificado, en el que el tercer texto codificado C3 es un valor OR exclusivo de un valor de función R(S) y la clave simétrica K, en el que el valor de función R(S) es una secuencia binaria obtenida introduciendo el valor
55 de función S a una función R inyectiva; y una etapa de cálculo, en el aparato de codificación, del segundo texto codificado C2 usando los elementos vµ, donde µ = 1, ..., n, del vector n dimensional v• y los valores r y ρ y sacar el segundo texto codificado C2;
la etapa (D) incluye una etapa de introducción, en el aparato de descodificación, de un valor que contiene el texto 60 codificado C1, el segundo texto codificado C2 Є G1n+1, y el tercer texto codificado C3 al aparato de descodificación; la etapa (F) incluye:
10
15
20
25
30
35
40
45
50
55 E10767167
27-08-2014
una etapa de cálculo, en el aparato de descodificación, de un valor OR exclusivo K~ del tercer texto codificado C3 y un valor de función R(S ~) que es una secuencia binaria obtenida introduciendo el valor de función S ~ a la función R inyectiva; y una etapa de cálculo, en el aparato de descodificación, de los valores r ~ y ρ ~ introduciendo el valor OR exclusivo K ~ y el texto codificado C1 a la función H resistente a colisiones; y
la etapa (G) incluye:
una etapa de cálculo, en el aparato de descodificación, de un valor de función C2~ = r ~.(∑µ=1 n vµ.bµ) + ρ ~.bn+1 Є G1n+1 usando los elementos vµ, donde µ = 1, ..., n, del vector n dimensional v• y los valores de r ~ y ρ ~; y una etapa de determinación, en el aparato de descodificación, de si el valor de función C2~ es igual al segundo texto codificado C2; si el valor de función C2~ es igual al segundo texto codificado C2, usando el valor OR exclusivo K ~ como una clave simétrica, calcular un valor descodificado M ~ introduciendo el valor OR exclusivo K ~ y el texto codificado C1 a una función de descodificación de clave simétrica y sacar el valor descodificado M ~.
31. Método de seguridad según la reivindicación 29, en el que la etapa (A) incluye:
una etapa de selección del valor ρ en el aparato de codificación; una etapa de cálculo, en el aparato de codificación, de un valor de función S = gT τ.ρЄ GT usando el valor ρ;y una etapa de uso, en el aparato de codificación, de un valor de función R(S) obtenido introduciendo el valor de función S a una función R inyectiva, como una clave simétrica K, calcular el texto codificado C1 introduciendo la clave simétrica K y el texto no codificado M a la función de codificación de clave simétrica, y sacar el texto codificado C1; la etapa (B) incluye una etapa de cálculo, en el aparato de codificación, del valor r introduciendo el valor de función S y el texto codificado C1 a la función H resistente a colisiones; la etapa (C) incluye una etapa de cálculo, en el aparato de codificación, del segundo texto codificado usando los elementos vµ, donde µ = 1, ..., n, del vector n dimensional v• y los valores r ~ y ρ ~ y sacar el segundo texto codificado C2; la etapa (F) incluye una etapa de cálculo, en el aparato de descodificación, del valor r ~ introduciendo el valor de función S ~ y el texto codificado C1 a la función H resistente a colisiones; y la etapa (G) incluye:
~ n n+1
una etapa de cálculo, en el aparato de descodificación, de un valor de función λ = C2-r .∑µ=1 vµ.bµ Є G1 usando el segundo texto codificado C2, el valor r ~ y los elementos vµ, donde µ = 1, ..., n, del vector ndimensional v‚; una etapa de cálculo, en el aparato de descodificación, de un valor de función e (λ, D2*) introduciendo el valor de función λ y la información de clave auxiliar D2* a la función e bilineal; y una etapa de determinación, en el aparato de descodificación, de si el valor de función e(λ, D2*) cumple e(λ, D2*) = 1 Є GT; si se cumple e(λ, D2*) = 1 Є GT, usando un valor de función R(S ~) obtenido introduciendo del valor de función S ~ a una función R inyectiva, como una clave simétrica K ~, calcular un valor descodificado
M~
introduciendo la clave simétrica K ~ y el texto codificado C1 a la función de descodificación de clave simétrica y sacar el valor descodificado M ~.
- 32.
- Un programa que hace que un ordenador funcione como un aparato de codificación según una cualquiera de las reivindicaciones 1 a 3.
- 33.
- Un programa que hace que un ordenador funcione como un aparato de descodificación según una cualquiera de las reivindicaciones 15 a 17.
- 34.
- Un medio de grabación legible por ordenador que tiene almacenado en el mismo un programa para hacer que un ordenador funcione como un aparato de codificación según una cualquiera de las reivindicaciones 1 a 3.
- 35.
- Un medio de grabación legible por ordenador que tiene almacenado en el mismo un programa para hacer que un ordenador funcione como un aparato de descodificación según una cualquiera de las reivindicaciones 15 a 17.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009106021 | 2009-04-24 | ||
| JP2009106021 | 2009-04-24 | ||
| PCT/JP2010/057271 WO2010123112A1 (ja) | 2009-04-24 | 2010-04-23 | 暗号化装置、復号装置、暗号化方法、復号方法、セキュリティ方法、プログラム及び記録媒体 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2496740T3 true ES2496740T3 (es) | 2014-09-19 |
Family
ID=43011226
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES10767167.9T Active ES2496740T3 (es) | 2009-04-24 | 2010-04-23 | Aparato de codificación, aparato de descodificación, método de codificación, método de descodificación, método y programa de seguridad y medio de almacenamiento |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US8515060B2 (es) |
| EP (1) | EP2423903B1 (es) |
| JP (1) | JP5291795B2 (es) |
| KR (1) | KR101246241B1 (es) |
| CN (1) | CN102396011B (es) |
| ES (1) | ES2496740T3 (es) |
| WO (1) | WO2010123112A1 (es) |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5349261B2 (ja) * | 2009-04-23 | 2013-11-20 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
| CN102484586B (zh) * | 2009-08-03 | 2014-12-03 | 日本电信电话株式会社 | 函数密码应用系统及方法 |
| CN103038805B (zh) * | 2009-11-20 | 2015-07-29 | 三菱电机株式会社 | 密码处理系统、密钥生成装置、密钥转让装置、加密装置、解密装置、密码处理方法以及密码处理程序 |
| JP5334873B2 (ja) * | 2010-01-08 | 2013-11-06 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
| WO2012011564A1 (ja) * | 2010-07-23 | 2012-01-26 | 日本電信電話株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法、プログラム、及び記録媒体 |
| FR2967851B1 (fr) * | 2010-11-22 | 2018-05-18 | Cryptoexperts Sas | Procede et systeme d'acces conditionnel a un contenu numerique, terminal et dispositif d'abonne associes |
| JP5606344B2 (ja) * | 2011-01-25 | 2014-10-15 | 三菱電機株式会社 | 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム |
| IN2014CN04197A (es) * | 2011-12-20 | 2015-07-17 | Mitsubishi Electric Corp | |
| JP5689839B2 (ja) * | 2012-02-16 | 2015-03-25 | 日本電信電話株式会社 | 公開鍵暗号システム、公開鍵暗号方法、受信装置、およびプログラム |
| US8948386B2 (en) | 2012-06-27 | 2015-02-03 | Certicom Corp. | Authentication of a mobile device by a network and key generation |
| US8971851B2 (en) * | 2012-06-28 | 2015-03-03 | Certicom Corp. | Key agreement for wireless communication |
| US9088408B2 (en) | 2012-06-28 | 2015-07-21 | Certicom Corp. | Key agreement using a key derivation key |
| KR101449239B1 (ko) * | 2013-01-24 | 2014-10-15 | 서울대학교산학협력단 | 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치 |
| 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. |
| US10256970B2 (en) * | 2013-12-20 | 2019-04-09 | Konnklijke Philips N.V. | Secure data transformations |
| US10608814B2 (en) * | 2015-05-17 | 2020-03-31 | Gideon Samid | Equivoe-T: Transposition equivocation cryptography |
| US11038668B2 (en) * | 2015-05-17 | 2021-06-15 | Gideon Samid | Transposition encryption alphabet method (TEAM) |
| KR102447476B1 (ko) * | 2015-08-20 | 2022-09-27 | 삼성전자주식회사 | 암복호 장치, 그것을 포함하는 저장 장치 및 그것의 암복호 방법 |
| CN107196760B (zh) * | 2017-04-17 | 2020-04-14 | 徐智能 | 具有可调整性的伴随式随机重构密钥的序列加密方法 |
| US10411891B2 (en) * | 2017-06-28 | 2019-09-10 | Nxp B.V. | Distance-revealing encryption |
| CN119766425B (zh) * | 2024-12-03 | 2025-10-17 | 西安电子科技大学 | 一种可验证的云外包内积函数加密方法 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE69322376T2 (de) * | 1993-05-05 | 1999-05-06 | Zunquan San Diego Calif. Liu | Einrichtung und Verfahren zur Datenverschlüsselung |
| JP4181724B2 (ja) * | 2000-03-03 | 2008-11-19 | 日本電気株式会社 | 証明付再暗号シャッフル方法と装置、再暗号シャッフル検証方法と装置、入力文列生成方法と装置及び記録媒体 |
| KR100585119B1 (ko) * | 2004-01-07 | 2006-06-01 | 삼성전자주식회사 | 암호화 장치, 암호화 방법 및 그 기록매체 |
| WO2007080633A1 (ja) * | 2006-01-11 | 2007-07-19 | Mitsubishi Denki Kabushiki Kaisha | 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号演算装置及び楕円曲線暗号パラメータ生成プログラム及び楕円曲線暗号演算プログラム |
| JP4869824B2 (ja) * | 2006-08-08 | 2012-02-08 | 三菱電機株式会社 | 受信者装置及び送信者装置及び暗号通信システム及びプログラム |
| JP5349261B2 (ja) * | 2009-04-23 | 2013-11-20 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
-
2010
- 2010-04-23 KR KR1020117023736A patent/KR101246241B1/ko not_active Expired - Fee Related
- 2010-04-23 EP EP10767167.9A patent/EP2423903B1/en active Active
- 2010-04-23 CN CN201080016405.4A patent/CN102396011B/zh not_active Expired - Fee Related
- 2010-04-23 ES ES10767167.9T patent/ES2496740T3/es active Active
- 2010-04-23 WO PCT/JP2010/057271 patent/WO2010123112A1/ja not_active Ceased
- 2010-04-23 JP JP2011510379A patent/JP5291795B2/ja not_active Expired - Fee Related
- 2010-04-23 US US13/263,770 patent/US8515060B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| KR101246241B1 (ko) | 2013-03-22 |
| US20120027201A1 (en) | 2012-02-02 |
| CN102396011B (zh) | 2014-04-16 |
| CN102396011A (zh) | 2012-03-28 |
| WO2010123112A1 (ja) | 2010-10-28 |
| EP2423903B1 (en) | 2014-07-16 |
| US8515060B2 (en) | 2013-08-20 |
| EP2423903A1 (en) | 2012-02-29 |
| KR20110135962A (ko) | 2011-12-20 |
| JP5291795B2 (ja) | 2013-09-18 |
| EP2423903A4 (en) | 2013-04-10 |
| JPWO2010123112A1 (ja) | 2012-10-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2496740T3 (es) | Aparato de codificación, aparato de descodificación, método de codificación, método de descodificación, método y programa de seguridad y medio de almacenamiento | |
| ES2512115T3 (es) | Dispositivo de generación de información, método de generación de información, y programa de generación de información y medio de almacenamiento del mismo | |
| US8897442B2 (en) | Encryption device, decryption device, encryption method, decryption method, program, and recording medium | |
| CN103003857B (zh) | 秘密分散系统、分散装置、分散管理装置、取得装置、秘密分散方法 | |
| 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 | |
| ES2445535T3 (es) | Sistema criptográfico, método de comunicación criptográfico, aparato de cifrado, aparato de generación de claves, aparato de descifrado, servidor de contenidos, programa, y medio de almacenamiento | |
| CN103444126B (zh) | 密码处理系统、密钥生成装置、加密装置、解密装置以及密码处理方法 | |
| KR101606317B1 (ko) | 암호 시스템, 암호 방법, 암호 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 및 복호 장치 | |
| JP6059347B2 (ja) | 復号装置、復号能力提供装置、それらの方法、およびプログラム | |
| Silverberg | Fully homomorphic encryption for mathematicians | |
| WO2018043049A1 (ja) | 暗号システム、暗号方法及び暗号プログラム | |
| Wang et al. | Attribute-Based Traitor Tracing. | |
| Özbudak et al. | A class of authentication codes with secrecy | |
| Wang | Preimage selective trapdoor function: How to repair an easy problem | |
| Moscardini | GROUP RING CRYPTOGRAPHY |