WO2023156698A1 - Procedimiento y dispositivo de cifrado/descifrado post-cuántico usando códigos lineales - Google Patents

Procedimiento y dispositivo de cifrado/descifrado post-cuántico usando códigos lineales Download PDF

Info

Publication number
WO2023156698A1
WO2023156698A1 PCT/ES2023/070083 ES2023070083W WO2023156698A1 WO 2023156698 A1 WO2023156698 A1 WO 2023156698A1 ES 2023070083 W ES2023070083 W ES 2023070083W WO 2023156698 A1 WO2023156698 A1 WO 2023156698A1
Authority
WO
WIPO (PCT)
Prior art keywords
procedure
matrix
computer
public key
decryption
Prior art date
Application number
PCT/ES2023/070083
Other languages
English (en)
French (fr)
Inventor
José GÓMEZ TORRECILLAS
Francisco Javier LOBILLO BORRERO
Gabriel NAVARRO GARULO
Original Assignee
Universidad De Granada
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universidad De Granada filed Critical Universidad De Granada
Publication of WO2023156698A1 publication Critical patent/WO2023156698A1/es

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/304Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy based on error correction codes, e.g. McEliece
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Cash Registers Or Receiving Machines (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Storage Device Security (AREA)

Abstract

Esta invención es un criptosistema asimétrico, presentado mediante un mecanismo de encapsulamiento de claves, inspirado en el criptosistema de McEliece. La invención consta de tres partes: generación de claves, cifrado (encapsulamiento de clave por parte del emisor) y descifrado (encapsulamiento de clave por parte del receptor). Como se ha explicado en los antecedentes de la invención, ésta se enmarca en lo que se conoce como Criptosistema de McEliece. Se aporta una nueva familia de códigos correctores de errores con algoritmos eficientes de decodificación. De esta forma se incrementa de forma significativa el espacio de búsqueda en este esquema de cifrado.

Description

DESCRIPCIÓN
Procedimiento y dispositivo de cifrado/descifrado post-cuántico usando códigos lineales.
SECTOR DE LA TÉCNICA
La presente invención se enmarca en el campo de las disposiciones para las comunicaciones secretas o protegidas utilizando un algoritmo de cifrado, en especial, de los algoritmos de clave pública, siendo imposible de invertir por computador el algoritmo de cifrado, y no exigiéndose secreto a las claves de cifrado de los utilizadores.
Concretamente, la invención está relacionada con los procedimientos generadores de códigos y particularmente, aunque no en forma exclusiva, generadores de códigos para su utilización en sistemas de cifrado asimétricos basados en de claves públicas, más concretamente en sistemas tipo McEliece.
ANTECEDENTES DE LA INVENCIÓN
En 1976, W. Diffie y M. E. Hellman proponen un nuevo tipo de criptosistema cuya principal característica es la presencia de dos claves distintas, una para el proceso de cifrado (pública) y otra para el descifrado (privada), tales que es computacionalmente difícil conocer la clave de descifrado a partir de la clave de cifrado [Whitfield Diffie y Martin Hellman. «New directions in cryptography». En: IEEE Transactions on Information Theory 22.6 (1976), págs. 644-654. DOI : 10 . 1109 /TIT . 1976 . 1055638], Este nuevo paradigma criptográfico recibe el nombre de criptografía asimétrica o criptografía de clave pública. Los más utilizados a día de hoy son el criptosistema RSA [Ronald L. Rivest, Adi Shamir y Leonard Adleman. «A Method for Obtaining Digital Signatures and Public-Key Cryptosystems». En: Common. ACM 21.2 (feb. de 1978), págs. 120-126. ISSN : 0001 -0782. DOI : 10 . 1145/359340 . 359342], basado en la dificultad de factorizar enteros con varios factores primos grandes, y aquellos basados en el problema del logaritmo discreto, ya sea en el grupo de las unidades de un cuerpo primo [Taher EIGamal. «A public key cryptosystem and a signature scheme based on discrete logarithms». En: IEEE Transactions on Information Theory 31.4 (1985), págs. 469-472. DOI : 10 . 1109 / TIT . 1985 . 1057074] o en el grupo de los puntos de una curva elíptica [Victor S. Miller. «Use of Elliptic Curves in Cryptography». En: Advances in Cryptology — CRYPTO ’85 Proceedings. Ed. por Hugh C. Williams. Berlin, Heidelberg: Springer Berlin Heidelberg, 1986, págs. 417-426. ISBN : 978-3-540-39799-1 ; Neal Koblitz. «Elliptic curve cryptosystems». En: Mathematics of Compu- tation 48 (1987), págs. 203-209. DOI: 10. 1090/S0025-5718- 1987-0866109-5]. Éstos pueden ser considerados como criptosistemas asimétricos clásicos.
Debido a la diferencia de rendimiento en los criptosistemas asimétricos frente a los simétricos, lo usual es utilizar la clave pública para cifrar una información aleatoria a partir de la cual se pueda derivar, mediante una función hash criptográficamente segura como SHA-2 o SHA-3 [Quynh Dang. Secure Hash Standard, en. Inf. téc. National Institute of Standards y Technology, ago. de 2015. DOI : 10 . 6028/NIST . FIPS . 180-4], una clave de sesión. Dicha clave de sesión será utilizada en un criptosistema simétrico, por ejemplo AES con cualquiera de sus longitu- des de clave [National Institute of Standards and Technology. Advanced Encryption Standard (AES). Inf. téc. FIPS PUB 197. National Institute of Standards y Technology, nov. de 2001 . DOI : 10 . 6028/NIST . FIPS . 197], Esto es lo que se conoce como mecanismo de encapsulamiento de claves (conocido por sus siglas KEM en inglés).
Paralelamente a la publicación de RSA, Robert McEliece propone en 1978 un criptosistema asimétrico basado en códigos correctores de errores [Robert J. McEliece. A Public-Key Cry- ptosystem Based On Algebraic Coding Theory. Inf. téc. 42-44. National Aeronautics y Space Administration, feb. de 1978]. La idea consiste en usar como clave pública la matriz genera- dora de un código Goppa binario suficientemente mezclada para que no sea posible deducir a partir de dicha matriz la información necesaria para decodificar. Dicha información se con- vierte en la clave privada. Harald Niederreiter propone [Harald Niederreiter. «Knapsack-type cryptosystems and algebraic coding theory». En: Problems of Control and Information Theory 15 (1986), págs. 159-166] un criptosistema equivalente pero basado en la matriz de paridad. En realidad Niederreiter propone sustituir los códigos Goppa binarios por códigos de Reed- Solomon generalizados, aunque dicha propuesta fue rota por Sidelnikov y Shestakov en 1992 [V. M. Sidelnikov y S. O. Shestakov. «On insecurity of cryptosystems based on generalized Reed-Solomon codes». En: Discrete Mathematics and Applications 2.4 (1992), págs. 439-444. DOI : doi : 10 . 1515/dma. 1992 .2 .4.439], La formulación de Niederreiter se considera hoy en día parte del estándar del criptosistema de McEliece [Martin R. Albrecht y col. Classic McEliece: conservative code-based cryptography. Inf. téc. NIST’s Post-Quantum Cryptography Standar- dization Project, OCt. de 2020. URL: https : //classic . mceliece . org/].
En los últimos años, los criptosistemas basados en códigos han ganado interés por parte de la comunidad criptográfica debido a la inherente vulnerabilidad de los criptosistemas asimétri- cos clásicos al desarrollo de ordenadores cuánticos provocada por el algoritmo de Shor [Pe- ter W. Shor. « Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer». En: SIAM Review 41.2 (1999), págs. 303-332. DOI : 10 . 1137 / S0036144598347011].
Un ingrediente fundamental del criptosistema de McEliece es la existencia de algoritmos efi- cientes de decodificación para los códigos binarios de Goppa. Dichos algoritmos están sopor- tados por estructuras aritméticas adicionales más allá de la estructura lineal. Nuestra invención también está soportada por estructuras aritméticas. Concretamente en un caso particular del concepto de polinomio de Ore [Oystein Ore. «Theory of Non-Commutative Polynomials». En- glish. En: Annals of Mathematics. Second Series 34.3 (jul. de 1933), págs. 480-508. ISSN : 0003486X. DOI : 10 .2307/1968173],
Dada la diferencia de rendimiento entre los criptosistemas de clave publica y los criptosistemas simétricos (tipo AES o cifrados de flujo), los primeros suelen emplearse para transmitir una clave de sesión que será empleada en un criptosistema simétrico acordado de antemano. Una forma de transmitir dicha clave es mediante un mecanismo de encapsulamiento de clave (KEM: key encapsulation mechanism en inglés) que funciona de la siguiente forma: el emisor genera de forma aleatoria un secreto e en un cierto espacio de búsqueda suficientemente grande. Dicho secreto se envía cifrado con la clave pública del receptor. El receptor descifra el secreto usando su clave privada, por lo que ambos conocen el valor de e. Mediante el uso de una función hash criptográficamente segura K. que produzca cadenas de K bits, donde K es para una longitud de la clave para el algoritmo simétrico acorado, tanto receptor como receptor pueden derivar la clave común Κ (e). Ejemplos de funciones hash criptográficamente seguras son SHA-2, SHA-3 y SHAKE, con salidas entre 224 y 522 bits.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La Figura 1 contiene el diagrama que describe el modo de realizar la multiplicación no conmu- tativa en los polinomios-nc. La Figura 2 contiene el diagrama que describe la división Euclídea a izquierda de polinomios- nc, con respecto al producto */, descrito previamente.
La Figura 3 describe el modo de obtener el coeficiente de la primera entrada al emplear algorit- mo extendido de Euclides para calcular el máximo común divisor a derecha y los coeficientes de Bezout de dos polinomios-nc. Concretamente, si r es el máximo común divisor a derecha de / y g, y u, v son los polinomios-nc tales que
Figure imgf000005_0002
entonces el procedimiento descrito en la Figura 3 da como salida el polinomio-nc u.
La Figura 4 contiene el diagrama que describe un procedimiento para calcular el mínimo común múltiplo a izquierda de dos polinomios-nc. Este procedimiento, como el anterior, se basa en el algoritmo extendido de Euclides para el producto *h.
La Figura 5 contiene el diagrama de un procedimiento para hallar la única solución con t posiciones no nulas de la ecuación lineal a partir de una solución cualquiera del mismo, correspondiente al algoritmo DEC
Figure imgf000005_0003
.
EXPLICACIÓN DE LA INVENCIÓN
Ambiente, notación, operaciones y procedimientos básicos
Una herramienta básica en la descripción de esta invención es el concepto de cuerpo finito, objeto ampliamente utilizado en todos los procedimientos de codificación y cifrado. Por ejem- plo, el espacio de mensajes en RSA es un producto de dos cuerpos primos, mientras que en los protocolos basados en el logaritmo discreto antes mencionados, los grupos utilizados son las unidades de un cuerpo primo o el conjunto de puntos de una curva elíptica sobre un cuerpo primo o un cuerpo finito binario. Además, los alfabetos de los códigos correctores de errores más utilizados son también cuerpos finitos. Una monografía de referencia sobre cuerpos fini- tos es la escrita por R. Lidl y H. Niederreiter [Rudolf Lidl y Harald Niederreiter. Finite fields. Vol. 20. Encyclopedia of mathematics and its applications. Cambridge University Press, 1997. ISBN : 0-521 -39231 -4], Sea F el cuerpo finito de q = pd elementos, con p primo y d > 0 entero. Entendemos que, para la correcta realización de esta invención, es necesario disponer de una forma de representar y operar elementos de distintos cuerpos finitos. Referimos al capítulo 2 de la monografía de Lidl y Niederreiter como guía para elegir dichas representaciones. Tam- bién va a ser necesario manejar extensiones F c L de cuerpos finitos, donde L tiene qm = pdm elementos, para cierto entero m > 1. Dar una extensión de cuerpos finitos supone conocer una descripción de los elementos en F y L, un homomorfismo de cuerpos emb : F -> L. Asociada a emb tenemos la construcción inversa sec() caracterizada por sec(emb(a)) = a. Dado que L es un espacio vectorial de dimensión m sobre F, entendemos que disponemos de una forma de asignar a cada elemento de L sus coordenadas en Fm con respecto a una base C fija. Una posible forma de construir dicha extensión de cuerpos es la siguiente: Denotaremos por F[z] el anillo de polinomios sobre el cuerpo F e indeterminada z con la operaciones usuales de suma y producto de polinomios. Entonces
Figure imgf000005_0005
^y donde pol ∈ F[z] es un polinomio irreducible en F[T] de grado m. L es un F-espacio vectorial de dimensión m y podemos considerar la base de L sobre F. Además emb() consiste en ver los elementos de F
Figure imgf000005_0004
como polinomios de grado 0. Otras formas de realizar la extensión pueden consultarse en la monografía referida.
Dado un entero h con 1 < h < dm, denotamos por K el subcuerpo de L formado por los elementos c ∈ L tales que cph = c. Utilizaremos también la notación siguiente:
Figure imgf000005_0001
que simplificará la descripción de algunas operaciones. Dado un número racional r ∈ Q, de- notamos por [rj al mayor entero menor o igual que r.
Denotaremos por L[T] al conjunto de polinomios sobre el cuerpo L e indeterminada x con la suma usual. Los elementos de L pueden considerarse como polinomios constantes en
Figure imgf000006_0001
Necesitaremos las siguientes operaciones:
■ Producto
Figure imgf000006_0003
(Figura 1 ). Definido a partir de la regla
Figure imgf000006_0002
para cualquier
Figure imgf000006_0004
este producto es un caso particular del producto de Ore [Ore, «Theory of Non- Commutative Polynomials»]. Este producto es no conmutativo. Para recalcar el uso del producto *h llamaremos a los elementos de L[x] polinomios-nc.
■ Función DIV (Figura 2). Esta función realiza la división a izquierda con respecto al pro- ducto *h, es decir, si
Figure imgf000006_0005
, (/ g), entonces c, r son los únicos polinomios-nc tales
Figure imgf000006_0006
q ( ) y ( ) ( )
■ Función PCP (Figura 3). Esta función tiene como salida el coeficiente asociado a la primera entrada en el algoritmo extendido de Euclides para el cálculo del máximo común divisor a derecha y los coeficientes de Bezout con respecto al producto *h, es decir, si r es el máximo común divisor a derecha de f y g, y u, v son los polinomios-nc tales que entonces el procedimiento PCP(f, g) da como salida el polinomio-nc
Figure imgf000006_0007
u.
■ Función MCM (Figura 4). Esta función devuelve el mínimo común múltiplo a izquierda con respecto al producto *h. Para más de dos polinomios, la función se itera sin importar el orden.
También denotamos por K. una función hash criptográficamente segura que actuará como función de derivación de clave.
Es este documento se usarán las siguientes notaciones respecto a conjuntos:
■ {} es el conjunto vacío, sin elementos.
■ A u B es la unión de A y B, es decir, los elementos que están en A o en B
■ A \ B es la diferencia, es decir, los elementos que están en A pero no en B.
La invención descrita en esta memoria es un criptosistema asimétrico basado en códigos co- rrectores de errores, y usado mediante un mecanismo de encapsulamiento de claves. Es, por tanto, necesario describir el procedimiento de generación de claves, el procedimiento de cifra- do y el procedimiento de descifrado.
Como se ha explicado en los antecedentes de la invención, ésta se enmarca en lo que se conoce como Criptosistema de McEliece. Se aporta una nueva familia de códigos correctores de errores con algoritmos eficientes de decodificación. De esta forma se incrementa de forma significativa el espacio de búsqueda en este esquema de cifrado.
Generación de claves
En un primer aspecto, la presente invención está relacionada con un procedimiento generación de claves para su uso en un criptosistema.
Concretamente, se describen a continuación un procedimiento para generar claves públicas, para el proceso de cifrado, y otro procedimiento para generar claves privadas, para el proceso de descifrado. Se asume emisor y receptor comparten una función hash criptográficamente se- gura
Figure imgf000006_0008
para una longitud de clave simétrica K a ser usada en un criptosistema simétrico. Tanto la función hash como el criptosistema simétrico pueden ser conocidos. Así, considerando como parámetros iniciales cuatro enteros positivos n, t, p y d, de forma que p es primo y 2 < t < y dado un cuerpo finito F con q = pd elementos, el “procedimiento de generación de clave privada de la invención” comprende los siguientes pasos:
Cálculo de parámetros adicionales
Figure imgf000007_0006
Parámetros δ, m: Elección aleatoria de entre todos los pares de enteros positivos (δ, m) tales que
Figure imgf000007_0005
Valores de m muy próximos a 0 o a pueden suponer un problema de seguri-
Figure imgf000007_0013
dad. Por ello, para un uso más seguro de la invención las restricciones adicionales son recomendadas. Con ellas los parámetros m, δ satisfacen las res-
Figure imgf000007_0012
tricciones
Figure imgf000007_0004
• Parámetro h: Selección aleatoria de un entero h tal que 1 < h < dm y <δ es el máximo común divisor de h y dm.
• Parámetro p: Se define como
Figure imgf000007_0001
Figure imgf000007_0014
■ Cálculo del cuerpo finito L a partir de F tal y como se describe en Ambiente, notación, operaciones y procedimientos básicos.
■ Selección aleatoria de n elementos
Figure imgf000007_0009
Figure imgf000007_0007
Se define el conjunto de "puntos posicionales” como
Figure imgf000007_0008
■ La elección de puntos posicionales puede ser computacionalmente costosa. Por ello des- cribimos un método más restrictivo para fabricarlo:
• Selección aleatoria de un elemento primitivo γ ∈ L. Es decir, selección aleatoria de un elemento 7 G L verificando que para cada divisor primo
Figure imgf000007_0010
Figure imgf000007_0011
• Selección aleatoria de un elemento α ∈ L que genere una base normal para exten- sión de L sobre el subcuerpo invariante. Es decir, selección aleatoria de un elemento a G L tal que
Figure imgf000007_0002
o, usando el test de Hensel, mcd
Figure imgf000007_0003
6 • Selección aleatoria de n elementos dist en el conjunto
Figure imgf000008_0002
Figure imgf000008_0003
Se define el conjunto de “puntos posicionales” como
Figure imgf000008_0004
■ Selección de forma aleatoria, con repetición o no, de n elementos no nulos en L para formar la list
Figure imgf000008_0005
■ Selección aleatoria de un polinomio que se llamará “polinomio-nc modular”,
Figure imgf000008_0006
definido por las siguientes propiedades:
Figure imgf000008_0019
• g es invariante (twosided en terminología inglesa) con respecto al producto *h, es decir, dado cualquier polinomio-nc /, existen polinomios-nc " tales qu
Figure imgf000008_0008
Figure imgf000008_0009
Figure imgf000008_0007
• para cada
Figure imgf000008_0010
los máximo común divisor a izquierda y derecha de g y
Figure imgf000008_0011
Dicho polinomio se puede calcular de la siguiente forma: denotamos
Figure imgf000008_0018
Seleccionamos l elemento
Figure imgf000008_0013
mediante el siguiente proceso:
Figure imgf000008_0020
I) Seleccionamos aleatoriamente l elementos
Figure imgf000008_0012
II) Para cada k = 0, . . . , l - 1, calculamos
Figure imgf000008_0014
para todo i = 1, . . . , n, terminamos. Si no, repetimos desde el punto 1).
El polinomio-nc modular es
Figure imgf000008_0001
■ Cálculo de polinomios-nc de paridad'. Se calcula el conjunto de polinomios-nc
Figure imgf000008_0016
de forma qu
Figure imgf000008_0015
Así, tras la realización de este procedimiento la clave privada objeto de la invención estará formada por los elementos:
Figure imgf000008_0017
■ los polinomios-nc de paridad
Figure imgf000009_0001
En otro aspecto, la presente invención también se refiere a un “procedimiento de generación de clave pública de la invención”. Este procedimiento comprende los siguientes pasos:
■ Cálculo de una matriz de paridad, H, a partir de los n polinomios-nc de paridad calcu- lados en el procedimiento de generación de clave privada de la invención. Dicha matriz representa las ecuaciones dei subespacio vectorial definido por
Figure imgf000009_0002
Así, tras la realización de este procedimiento la clave pública objeto de la invención estará formada por la matriz
Figure imgf000009_0003
pub
Realizaciones preferentes en función de los parámetros iniciales:
En una realización preferente del procedimiento de generación de clave privada de la inven- ción, el parámetro inicial p se fija en p = 2.
En otra realización preferente del procedimiento de generación de clave privada de la inven- ción, el parámetro inicial p se fija en p = 2 y el parámetro inicial d se fija en los valores d = 4 o d = 8. De esta forma se identifican de forma unívoca los elementos de F con caracteres hexadecimales o con bytes respectivamente. Procedimiento de cifrado de la invención
En otros aspecto, la invención se refiere a un procedimiento de cifrado a partir de una clave pública generada por el procedimiento de generación de clave pública de la invención, que comprende seleccionar un vector aleatorio en con t componentes no nulas, y multiplicarlo por la traspuesta de la matriz
Figure imgf000010_0004
Figure imgf000010_0003
Procedimiento de descifrado de la invención
El otro aspecto, la invención también se refiere a un procedimiento de descifrado que com- prende aplicar un algoritmo de decodificación empleando la clave privada generada por el procedimiento de la invención.
En una realización particular, el procedimiento de descifrado del criptograma, s, cifrado usando una clave pública generada por el procedimiento de generación de clave pública de la inven- ción, comprende resolver el sistema lineal y aplicar un algoritmo de decodificación a la solución, y.
Figure imgf000010_0002
En una realización preferente, el algoritmo de decodificación empleado es el algoritmo DEC presentado a continuación (Figura 5):
Figure imgf000010_0001
Figure imgf000011_0002
Sistemas y aparatos de la invención
En otro aspecto, la presente invención también contempla los aparatos y sistemas que permi- ten llevar a cabo los procedimientos previamente descritos. Un claro ejemplo de aparato es un ordenador.
Así, es objeto de la invención un sistema o aparato apto para el proceso de datos que com- prende los medios necesarios para llevar a cabo los lleve a cabo alguno de los procedimientos de la invención: Procedimientos de generación de clave pública o privada, procedimiento de cifrado o procedimiento de descifrado.
Más concretamente, se consideran objeto de la invención los siguientes sistemas y aparatos:
■ Un sistema o un aparato apto para el procesado de datos que comprende los medios necesarios para llevar a cabo los siguientes pasos:
• Medios para introducir en el sistema/aparato los parámetros iniciales n, t, p y d, enteros positivos, de forma que p es primo
Figure imgf000011_0005
• Medios para generar un cuerpo finito F con pd elementos.
• Medios para calcular los parámetros adicionales δ, m, h, p y k.
• Medios para calcular el cuerpo finito L como extensión de F.
• Medios para llevar a cabo la selección aleatoria de los puntos tales que
Figure imgf000011_0004
Figure imgf000011_0003
y una selección de forma aleatoria, con repetición o no, de n elementos no nulos en L para formar la lista
Figure imgf000011_0006
p [p p \
• Medios para seleccionar de forma aleatoria un polinomio-nc modular g G L[x] defi- nido por las siguientes propiedades: o el grado de g es 2í, o g es invariante (twosided en terminología inglesa) con respecto al producto *h, es decir, dado cualquier polinomio-nc /, existen polinomios-nc
Figure imgf000011_0001
tales que f *h g = g *h f' y g *h f = f" *h g, o para cada 0 < i < n - 1, los máximo común divisor a izquierda y derecha de g y x - αi valen 1.
10
Figure imgf000012_0007
• Medios para proporcionar como salida la siguiente información que da lugar a una clave privada:
Figure imgf000012_0006
■ Un sistema o un aparato apto para el procesado de datos que comprende los medios necesarios para llevar a cabo los siguientes pasos:
• Medios para introducir en el sistema/aparato los siguientes datos: los parámetros n, t, p, d, S, m, h, p y k; la extensión
Figure imgf000012_0005
y los polinomios-nc de paridad
Figure imgf000012_0002
• Medios para realizar el cálculo de una matriz de paridad, H, a partir de los n polinomios-nc de paridad, que es cualquier matriz que represente las ecuaciones del subespacio vectorial definido por
Figure imgf000012_0001
• Medios para calcular la matriz Hpub a partir de la matriz de paridad H, que es cualquier matriz equivalente por filas a una ampliación de H con rango mayor o igual que n - k.
• Medios para proporcionar como salida la matriz Hpub que da lugar a la clave pública asociada a la clave privada anterior.
■ Un sistema o un aparato apto para el procesado de datos que comprende los medios necesarios para llevar a cabo un procedimiento de cifrado a partir de una clave pública realizando los siguientes pasos:
• Medios para introducir en el sistema/aparato los siguientes datos: los parámetros n, t, p y d; el cuerpo F, y la matriz Hpub.
• Medios para seleccionar un vector aleatorio e en Fn con t componentes no nulas.
• Medios para calcular el producto del vector e por la traspuesta de la matriz Hpub , produciendo el criptograma s.
• Medios para proporcionar como salida el criptograma s.
■ Un sistema o un aparato apto para el procesado de datos que comprende los medios ne- cesarios para llevar a cabo un procedimiento de descifrado a partir de una clave privada realizando los siguientes pasos:
Figure imgf000012_0003
• Medios para resolver el sistema linea
Figure imgf000012_0004
• Medios para aplicar el algoritmo de decodificación DEC a la solución y, obteniendo el vector e.
• Medios para proporcionar como salida el vector e. IMPLEMENTACIÓN DE LOS PROCEDIMIENTOS DE LA INVENCIÓN
En otro aspecto, la invención se refiere a los programas de ordenador que comprenden ins- trucciones para hacer que un ordenador, o un sistema o aparato apto para el procesado de datos, lleve a cabo alguno de los procedimientos de la invención (Procedimientos de genera- ción de clave pública o privada, procedimiento de cifrado, procedimiento de descifrado) cuando se carga en dicho ordenador, sistema o aparato apto para el proceso de datos.
La invención abarca programas de ordenador que pueden estar en forma de código fuente, de código objeto o en un código intermedio entre código fuente y código objeto, tal como en forma parcialmente compilada, o en cualquier otra forma adecuada para usar en la implemen- tación de los procesos de acuerdo con la invención. En particular, los programas de ordenador también abarcan aplicaciones en la nube que implementen alguno de los procedimientos de la invención.
Estos programas pueden estar dispuestos sobre o dentro de un soporte apto para su lectura, en adelante, “medio portador” o “portador”. El medio portador puede ser cualquier entidad o dispositivo capaz de portar el programa. Cuando el programa va incorporado en una señal que puede ser transportada directamente por un cable u otro dispositivo o medio, el medio portador puede estar constituido por dicho cable u otro dispositivo o medio. Como variante, el medio portador podría ser un circuito integrado en el que va incluido el programa, estando el circuito integrado adaptado para ejecutar, o para ser utilizado en la ejecución de, los procesos correspondientes.
A modo de ejemplo, los programas podrían estar incorporados en un medio de almacenamien- to, como una memoria ROM, una memoria CD ROM o una memoria ROM de semiconductor, una memoria USB, o un soporte de grabación magnética, por ejemplo, un disco flexible o un disco duro. Alternativamente, los programas podrían estar soportados en una señal portadora transmisible. Por ejemplo, podría tratarse de una señal eléctrica u óptica que podría transpor- tarse a través de cable eléctrico u óptico, por radio o por cualesquiera otros medios.
En este sentido, otro objeto de la invención es un medio de almacenamiento legible por un ordenador que comprende instrucciones de programa capaces de hacer que un ordenador o un sistema o aparato apto para el procesado de datos lleve a cabo alguno de los procedimientos de la invención cuando se carga en dicho ordenador, sistema o aparato apto para el proceso de datos.
Finalmente, un último objeto de la invención se refiere a una señal transmisible que comprende instrucciones de programa capaces de hacer que un ordenador o un sistema o aparato apto para el procesado de datos lleve a cabo alguno de los procedimientos de la invención cuando se carga en dicho ordenador, sistema o aparato apto para el proceso de datos.
REALIZACIÓN PREFERENTE DE LA INVENCIÓN
A continuación se describe una implementación de un ejemplo de juguete de cómo seleccionar las claves del criptosistema, el proceso de cifrado y el proceso de descifrado. Se ha implemen- tado en una Notebook de Jupyter del sistema algebraico computacional Sagemath (Python) en un ordenador con procesador Intel Core ¡7 de doble núcleo a 3GHz bajo el sistema operativo macOS Big Sur versión 11 .6.
1 . Selección de parámetros básicos. Para nuestro ejemplo trabajaremos sobre F, el cuerpo finito de 16 elementos (esto es, p = 2 y d = 4), n = 16 y t = 2. Denotamos por a un generador de F verificando que a4 + a + 1 = 0. Los elementos de F se representan, por tanto, como polinomios en a de grado menor que 4, es decir, un elemento de F
12 viene determinado por una cadena de 4 bits, o un carácter hexadecimal. Utilizaremos caracteres hexadecimales para etiquetar los elementos de F según el siguiente esquema: a3 + a + l = 1011 = B.
En este caso, dado el reducido tamaño de la clave pública, la única posibilidad es con- siderar m = 2 y ó = 4. Para claves de mayor tamaño, se seleccionaría aleatoriamente un par de valores (m, 5) entre todos los posibles casos. Por ejemplo, con parámetros n = 4096 y t = 30, el conjunto de pares posibles es
(14, 14), (14, 28), (15, 10), (15, 12), (15, 15), (15, 20), (15, 30), (16, 16), (16, 32), (17,
17), (17, 34), (18, 12), (18, 18), (18, 24), (18, 36), (19, 19), (19, 38), (20, 10), (20, 16),
(20, 20), (20, 40), (21 , 12), (21 , 14), (21 , 21 ), (21 , 28), (21 , 42), (22, 11 ), (22, 22), (22,
44), (23, 23), (23, 46), (24, 12), (24, 16), (24, 24), (24, 32), (24, 48), (25, 10), (25, 20),
(25, 25), (25, 50), (26, 13), (26, 26), (26, 52), (27, 9), (27, 12), (27, 18), (27, 27), (27, 36), (27, 54), (28, 14), (28, 16), (28, 28), (28, 56), (29, 29), (29, 58), (30, 10), (30, 12), (30,
15), (30, 20), (30, 24), (30, 30), (30, 40), (30, 60), (31 , 31 ), (31 , 62), (32, 16), (32, 32),
(32, 64), (33, 11 ), (33, 12), (33, 22), (33, 33), (33, 44), (33, 66), (34, 8), (34, 17), (34, 34), (34, 68)
Para h seleccionamos aleatoriamente h = 4 y, por tanto, p = 2. Para el cálculo de la extensión L, seleccionamos aleatoriamente un polinomio irreducible en F, pol = x2 + Fx + B, entonces L = Denotamos por b a una raíz de pol, por lo que los elementos de L pueden ser representados como polinomios en b de grado menor que 2 y con coeficientes en F.
2. Elemento primitivo. Seleccionamos aleatoriamente 7 = B6 + 2, un elemento primitivo de L.
3. Base normal. Seleccionamos aleatoriamente a = 96 + 8 e L.
4. Puntos posicionales. De forma aleatoria seleccionamos 16 elementos de L:
Figure imgf000014_0001
5. Elementos. De forma aleatoria seleccionamos 16 elementos no nulos
Figure imgf000014_0002
Calculamos un polinomio g nc-modular
Figure imgf000015_0003
Calculamos los polinomios-nc de paridad 3
Figure imgf000015_0004
Matriz de paridad. De los coeficientes de los polinomios de paridad obtenemos los coefi- cientes que representamos mediante la siguiente matriz, con coeficientes en L,
Figure imgf000015_0001
Expandiendo a coeficientes en F obtenemos la matriz de paridad
Figure imgf000015_0002
Cálculo de la clave pública. Puesto que k = 8 y el rango de H es n - k = 8, la clave pública Hpub es simplemente la forma escalonada reducida por filas de H, es decir,
Figure imgf000016_0001
Seleccionamos aleatoriamente el secreto compartido, un vector e ∈ F16 con t = 2 com- ponentes no nulas,
(4, 0, 0, 0, 0, 0, 0, 0, 0, C, 0, 0, 0, 0, 0, 0) .
En este caso, las componentes no nulas corresponden con las posiciones 0 y 9. Cifrado. Ciframos el mensaje multiplicando por la transpuesta de la matriz Hpub y obte- niendo un mensaje cifrado
Figure imgf000016_0003
Descifrado. El receptor resuelve el sistema lineal s obteniendo, por ejemplo,
Figure imgf000016_0002
y = (F, C, A, 0, 6, D, 8, 3, 0, 0, 0, 0, 0, 0, 0, 0) .
Aplicando el algoritmo DEC() a y, obtenemos el vector e, descifrando el mensaje.

Claims

REIVINDICACIONES ASOCIADAS Procedimiento de generación de clave privada que comprende los siguientes pasos:
Figure imgf000017_0001
5. Procedimiento de generación de la clave pública consistente en la matriz Hpub que com- prende el cálculo de la matriz de paridad H a partir de los polinomios de paridad que forman parte de la clave privada como cualquier matriz que represente las ecuaciones del subespacio vectorial definido por
Figure imgf000018_0001
y, a partir de ella, el cálculo de la matriz Hpub como cualquier matriz equivalente por filas a una ampliación de H con rango mayor o Igual que n - k.
6. Clave pública, Hpub, obtenible por el procedimiento según reivindicación 5.
7. Procedimiento de cifrado a partir de una clave pública generada por el procedimiento según la reivindicación 4, que comprende seleccionar un vector aleatorio en Fn con t componentes no nulas, y multiplicarlo por la traspuesta de la matriz Hpub.
8. Procedimiento de descifrado que comprende aplicar un algoritmo de decodificación em- pleando la clave privada generada por el procedimiento de la invención.
9. Procedimiento de descifrado, a partir de una clave privada generada según cualquiera de las reivindicaciones 1 a 3, de un criptograma cifrado a partir de una clave pública gene- rada por el procedimiento según la reivindicación 4, que comprende resolver el sistema lineal s = yH^ y aplicar un algoritmo de decodificación a la solución.
10. Procedimiento, según reivindicación anterior, en el que el algoritmo de decodificación aplicado a la solución es el algoritmo DEC. 11. Programa de ordenador que comprende instrucciones para hacer que un ordenador lleve a cabo cualquiera de los procedimientos según reivindicaciones 1 a 10.
12. Medio de almacenamiento legible por un ordenador que comprende instrucciones de pro- grama capaces de hacer que un ordenador lleve a cabo cualquiera de los procedimientos según reivindicaciones 1 a 10. 13. Señal transmisible que comprende instrucciones de programa capaces de hacer que un ordenador lleve a cabo cualquiera de los procedimientos según reivindicaciones 1 a 10.
PCT/ES2023/070083 2022-02-15 2023-02-15 Procedimiento y dispositivo de cifrado/descifrado post-cuántico usando códigos lineales WO2023156698A1 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
ES202230118A ES2948323A1 (es) 2022-02-15 2022-02-15 Procedimiento y dispositivo de cifrado/descifrado post-cuántico usando códigos lineales
ESP202230118 2022-02-15

Publications (1)

Publication Number Publication Date
WO2023156698A1 true WO2023156698A1 (es) 2023-08-24

Family

ID=87577643

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/ES2023/070083 WO2023156698A1 (es) 2022-02-15 2023-02-15 Procedimiento y dispositivo de cifrado/descifrado post-cuántico usando códigos lineales

Country Status (2)

Country Link
ES (1) ES2948323A1 (es)
WO (1) WO2023156698A1 (es)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998008323A1 (en) * 1996-08-19 1998-02-26 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
WO2012139919A2 (en) * 2011-04-09 2012-10-18 Universität Zürich Method and apparatus for public-key cryptography based on error correcting codes
US20200028674A1 (en) * 2017-11-21 2020-01-23 Zenith Electronics Llc METHOD AND APPARATUS FOR ASYMMETRIC CRYPTOSYSTEM BASED ON QUASI-CYCLIC MODERATE DENSITY PARITY-CHECK CODES OVER GF(q)
US20210203502A1 (en) * 2018-12-21 2021-07-01 01 Communique Laboratory Inc. Cryptographic System and Method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998008323A1 (en) * 1996-08-19 1998-02-26 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
WO2012139919A2 (en) * 2011-04-09 2012-10-18 Universität Zürich Method and apparatus for public-key cryptography based on error correcting codes
US20200028674A1 (en) * 2017-11-21 2020-01-23 Zenith Electronics Llc METHOD AND APPARATUS FOR ASYMMETRIC CRYPTOSYSTEM BASED ON QUASI-CYCLIC MODERATE DENSITY PARITY-CHECK CODES OVER GF(q)
US20210203502A1 (en) * 2018-12-21 2021-07-01 01 Communique Laboratory Inc. Cryptographic System and Method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WANG YONGGE: "Quantum resistant random linear code based public key encryption scheme RLCE", 2016 IEEE INTERNATIONAL SYMPOSIUM ON INFORMATION THEORY (ISIT), 10 July 2016 (2016-07-10), pages 2519 - 2523, XP032940694, DOI: 10.1109/ISIT.2016.7541753 *

Also Published As

Publication number Publication date
ES2948323A1 (es) 2023-09-08

Similar Documents

Publication Publication Date Title
Sendrier Code-based cryptography: State of the art and perspectives
US20170324554A1 (en) Public Key Cryptosystem Based On Partitioning Of Galois Field Elements
EP2279579B1 (en) A closed galois field cryptographic system
US8619980B2 (en) Information generation apparatus, method, program, and recording medium for deriving a decryption key from another decryption key
EP2003546B1 (en) Closed galois field combination
Couvreur et al. A polynomial time attack against algebraic geometry code based public key cryptosystems
Heyse Implementation of McEliece based on quasi-dyadic Goppa codes for embedded devices
Moldovyan et al. A new hard problem over non-commutative finite groups for cryptographic protocols
KR20050061544A (ko) 이진 하드웨어에서 홀수 표수의 유한 필드를 사용하는암호화
US20220407719A1 (en) Methods and systems for encrypting rational numbers and adding randomness to rsa cryptosystems using p-adic numbers
Blackburn et al. Group theory in cryptography
Nosouhi et al. Weak-key analysis for bike post-quantum key encapsulation mechanism
Lablanche et al. Optimized implementation of the NIST PQC submission ROLLO on microcontroller
Kumar et al. Cryptographic Schemes Based on Elliptic Curves over the Ring []
Baba et al. A non-abelian factorization problem and an associated cryptosystem
Couvreur et al. Cryptanalysis of public-key cryptosystems that use subcodes of algebraic geometry codes
Rose Lattice-based cryptography: a practical implementation
Barreto et al. A panorama of post-quantum cryptography
Dömösi et al. A cryptographic system based on a new class of binary error-correcting codes
WO2023156698A1 (es) Procedimiento y dispositivo de cifrado/descifrado post-cuántico usando códigos lineales
Kindberg A usability study of post-quantum algorithms
Azougaghe et al. Comparative Study on the McEliece Public-Key Cryptosystem Based on Goppa and QC-MDPC Codes
Abdouli et al. Survey on computationally hard problems and their applications to cryptography
Wilcox A Computational Introduction to Elliptic and Hyperelliptic Curve Cryptography
Márquez-Corbella et al. Error-correcting pairs: a new approach to code-based cryptography

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23755953

Country of ref document: EP

Kind code of ref document: A1