ES2948323A1 - 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
ES2948323A1
ES2948323A1 ES202230118A ES202230118A ES2948323A1 ES 2948323 A1 ES2948323 A1 ES 2948323A1 ES 202230118 A ES202230118 A ES 202230118A ES 202230118 A ES202230118 A ES 202230118A ES 2948323 A1 ES2948323 A1 ES 2948323A1
Authority
ES
Spain
Prior art keywords
procedure
matrix
hpub
polynomials
following
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.)
Withdrawn
Application number
ES202230118A
Other languages
English (en)
Inventor
Torrecillas José Gómez
Borrero Francisco Javier Lobillo
Garulo Gabriel Navarro
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Universidad de Granada
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
Priority to ES202230118A priority Critical patent/ES2948323A1/es
Priority to PCT/ES2023/070083 priority patent/WO2023156698A1/es
Publication of ES2948323A1 publication Critical patent/ES2948323A1/es
Withdrawn legal-status Critical Current

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
SECTÓR DE LA TECNICA
La presente invencion 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 publica, siendo imposible de invertir por computador el algoritmo de cifrado, y no exigiendose secreto a las claves de cifrado de los utilizadores.
Concretamente, la invencion esta relacionada con los procedimientos generadores de codigos y particularmente, aunque no en forma exclusiva, generadores de codigos para su utilizacion en sistemas de cifrado asimetricos basados en de claves publicas, mas 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 (publica) 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), pags. 644-654.
DOI: 10.1109/TIT. 1976.1055638 ]. Este nuevo paradigma criptografico recibe el nombre de criptografía asimétrica o criptografía de clave pública. Los mas utilizados a día de hoy son el criptosistema RSA [Ronald L. Rivest, Adi Shamir y Leonard Adleman.«A Method for Obtaining Digital Signaturas and Public-Key Cryptosystems». En: Commun. ACM 21.2 (feb. de 1978), pags. 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 ElGamal. «A public key cryptosystem and a signatura scheme based on discrete logarithms»>. En: IEEE Transactions on Information Theory 31.4 (1985), pags. 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, pags. 417-426. ISBN: 978-3-540-39799-1; Neal Koblitz. «Elliptic curve cryptosystems»>. En: Mathematics of Compu­ taron 48 (1987), pags. 203-209. DOI: 10.1090 / S 0025 - 5718 - 1987 - 0866109 - 5 ]. Estos pueden ser considerados como criptosistemas asimetricos clasicos.
Debido a la diferencia de rendimiento en los criptosistemas asimetricos frente a los simetricos, lo usual es utilizar la clave publica para cifrar una informacion aleatoria a partir de la cual se pueda derivar, mediante una funcion hash criptograficamente segura como SHA-2 o SHA-3 [Quynh Dang. Secure Hash Standard. en. Inf. tec. National Institute of Standards y Technology, ago. de 2015. DOI: 10.6028 /NIST.FIPS.180 - 4 ], una clave de sesion. Dicha clave de sesion sera utilizada en un criptosistema simetrico, por ejemplo AES con cualquiera de sus longitu­ des de clave [National Institute of Standards and Technology. Advanced Encryption Standard (AES). Inf. tec. FIPS PUB 197. National Institute of Standards y Technology, nov. de 2001. DOI: 10.6028 / n i s t . f i p s .197 ]. Esto es lo que se conoce como mecanismo de encapsulamiento de claves (conocido por sus siglas KEM en ingles).
Paralelamente a la publicación de RSA, Robert McEliece propone en 1978 un criptosistema asimetrico basado en codigos correctores de errores [Robert J. McEliece. A Public-Key Cryptosystem Based On Algebraic Coding Theory. Inf. tec. 42-44. National Aeronautics y Space Administration, feb. de 1978]. La idea consiste en usar como clave publica la matriz genera­ dora de un codigo Goppa binario suficientemente mezclada para que no sea posible deducir a partir de dicha matriz la informacion necesaria para decodificar. Dicha informacion 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), pags. 159-166] un criptosistema equivalente pero basado en la matriz de paridad. En realidad Niederreiter propone sustituir los codigos Goppa binarios por codigos 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), pags. 439-444.
DOI: doi:10.1515/dma.1992.2.4.439 ]. La formulacion de Niederreiter se considera hoy en día parte del estandar del criptosistema de McEliece [Martin R. Albrecht y col. Classic McEliece: conservative code-based cryptography. Inf. tec. NIST’s Post-Quantum Cryptography Standardization Project, oct. de 2020. URL: https://classic.mceliece.org/].
En los ultimos anos, los criptosistemas basados en codigos han ganado interes por parte de la comunidad criptografica debido a la inherente vulnerabilidad de los criptosistemas asimetricos clasicos al desarrollo de ordenadores cuanticos provocada por el algoritmo de Shor [Peter W. Shor. «Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computen . En: SIAM Review 41.2 (1999), pags. 303-332. DOI: 10 . 1137 / S0036144598347011].
Un ingrediente fundamental del criptosistema de McEliece es la existencia de algoritmos efi­ cientes de decodificacion para los codigos binarios de Goppa. Dichos algoritmos estan sopor­ tados por estructuras aritméticas adicionales mas alla de la estructura lineal. Nuestra invencion tambien esta soportada por estructuras aritmeticas. Concretamente en un caso particular del concepto de polinomio de Ore [Oystein Ore. «Theory of Non-Commutative Polynomials». English. En: Annals of Mathematics. Second Series 34.3 (jul. de 1933), pags. 480-508. ISSN : 0003486X. DOI: 10.2307/1968173 ].
Dada la diferencia de rendimiento entre los criptosistemas de clave publica y los criptosistemas simetricos (tipo AES o cifrados de flujo), los primeros suelen emplearse para transmitir una clave de sesion que sera empleada en un criptosistema simetrico acordado de antemano. Una forma de transmitir dicha clave es mediante un mecanismo de encapsulamiento de clave (KEM: key encapsulation mechanism en ingles) que funciona de la siguiente forma: el emisor genera de forma aleatoria un secreto e en un cierto espacio de busqueda suficientemente grande. Dicho secreto se envía cifrado con la clave publica 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 funcion hash criptograficamente segura K que produzca cadenas de K bits, donde K es para una longitud de la clave para el algoritmo simetrico acorado, tanto receptor como receptor pueden derivar la clave comun K(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 multiplicacion no conmu­ tativa en los polinomios-nc.
La Figura 2 contiene el diagrama que describe la división Euclídea a izquierda de polinomiosnc, con respecto al producto *h 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 maximo comun divisor a derecha y los coeficientes de Bezout de dos polinomios-nc. Concretamente, si r es el maximo comun divisor a derecha de f y g, y u,v son los polinomios-nc tales que r = (u *h f ) (v *hg) 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 comun multiplo 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 unica solucion con t posiciones no nulas de la ecuacion lineal s = xHpub a partir de una solucion cualquiera del mismo, correspondiente al algoritmo DEC.
EXPLICACION DE LA INVENCION
Ambiente, notación, operaciones y procedimientos básicos
Una herramienta basica en la descripcion de esta invencion es el concepto de cuerpo finito, objeto ampliamente utilizado en todos los procedimientos de codificacion 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. Ademas, los alfabetos de los codigos correctores de errores mas utilizados son tambien 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 fieids. 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 realizacion de esta invencion, 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­ bien 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 extension de cuerpos finitos supone conocer una descripcion de los elementos en F y L , un homomorfismo de cuerpos emb : F ^ L . Asociada a emb tenemos la construccion inversa sec() caracterizada por sec(emb(a)) = a. Dado que L es un espacio vectorial de dimension 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 extension 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, L = , donde pol e F[z] es un polinomio irreducible en F[x] de grado m . L es un F-espacio vectorial de dimension m y podemos considerar la base C = { 1 , z , ... , z m-1} de L sobre F . Ademas emb() consiste en ver los elementos de F como polinomios de grado 0. Otras formas de realizar la extension pueden consultarse en la monografía referida.
Dado un entero h con l ≤ h < dm, denotamos por K el subcuerpo de L formado por los elementos c e L tales que cph = c. Utilizaremos tambien la notacion siguiente:
pih - l
[P\i ph - l 1+ ph + p2h +------ p(i 1)11,
que simplificará la descripción de algunas operaciones. Dado un número racional r e Q , de­ notamos por [r\ al mayor entero menor o igual que r .
Denotaremos por L[x] 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 L[x]. Necesitaremos las siguientes operaciones:
■ Producto *h en L[x] (Figura 1). Definido a partir de la regla x *h a = aphx para cualquier a e L , 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.
■ Funcion DIV (Figura 2). Esta funcion realiza la division a izquierda con respecto al pro­ ducto *h, es decir, si c,r = D IV (f,g ), entonces c,r son los unicos polinomios-nc tales que f = (c *h g) + r , y r = 0 o grado(r) < grado(g).
■ Funcion PCP (Figura 3). Esta funcion tiene como salida el coeficiente asociado a la primera entrada en el algoritmo extendido de Euclides para el calculo del maximo comun divisor a derecha y los coeficientes de Bezout con respecto al producto *h, es decir, si r es el maximo comun divisor a derecha de f y g, y u,v son los polinomios-nc tales que r = (u*h f ) (v *hg) entonces el procedimiento PC P(f,g) da como salida el polinomio-nc u.
■ Funcion MCM (Figura 4). Esta funcion devuelve el mínimo comun multiplo a izquierda con respecto al producto *h.
Tambien denotamos por K una funcion hash criptograficamente segura que actuara como funcion de derivacion de clave.
Es este documento se usaran las siguientes notaciones respecto a conjuntos:
■ { } es el conjunto vacío, sin elementos.
A u B es la union de A y B , es decir, los elementos que estan en A o en B
A \ B es la diferencia, es decir, los elementos que estan en A pero no en B .
La invencion descrita en esta memoria es un criptosistema asimetrico basado en codigos co­ rrectores de errores, y usado mediante un mecanismo de encapsulamiento de claves. Es, por tanto, necesario describir el procedimiento de generacion de claves, el procedimiento de cifra­ do y el procedimiento de descifrado.
Como se ha explicado en los antecedentes de la invencion, esta se enmarca en lo que se conoce como Criptosistema de McEliece. Se aporta una nueva familia de codigos correctores de errores con algoritmos eficientes de decodificacion. De esta forma se incrementa de forma significativa el espacio de busqueda en este esquema de cifrado.
Generación de claves
En un primer aspecto, la presente invencion esta relacionada con un procedimiento generacion de claves para su uso en un criptosistema.
Concretamente, se describen a continuacion un procedimiento para generar claves publicas, para el proceso de cifrado, y otro procedimiento para generar claves privadas, para el proceso de descifrado. Se asume emisor y receptor comparten una funcion hash criptograficamente se­ gura K : F™ ^ { 0 ,1}K para una longitud de clave simetrica K a ser usada en un criptosistema simetrico. Tanto la funcion hash como el criptosistema simetrico 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 n , 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:
■ Calculo de parametros adicionales k, 5, m, h y p .
• Parametro k : Se define como k = n - 2t m .
• Parametros 5, m : Eleccion aleatoria de entre todos los pares de enteros positivos (5, m) tales que
divide a dm y 5 < dm.
Figure imgf000006_0001
J
• Parametro h: Selección aleatoria de un entero h tal que 1 ≤ h dm y 5 es el maximo comun divisor de h y dm.
• Parametro p : Se define como p = df .
■ Calculo del cuerpo finito L a partir de F tal y como se describe en Ambiente, notación, operaciones y procedimientos básicos.
■ Seleccion aleatoria de un elemento primitivo y e L. Es decir, seleccion aleatoria de un elemento y e L verificando que
Figure imgf000006_0005
para cada divisor primo pi de pdm - 1.
■ Seleccion aleatoria de un elemento a e L que genere una base normal para extension de L sobre el subcuerpo invariante. Es decir, seleccion aleatoria de un elemento a e L tal que
Figure imgf000006_0002
■ Seleccion aleatoria de n elementos distintos a0, ... , an-1 en el conjunto
Figure imgf000006_0003
Se define el conjunto de “puntosposicionales” como E = [a 0, ... , an - í ].
■ Seleccion de forma aleatoria, con repeticion o no, de n elementos no nulos en L para formar la lista n = [p0, ... , nn- í ].
■ Seleccion aleatoria de un polinomio g e L [x], que se llamara “polinomio-nc modular”, definido por las siguientes propiedades:
• el grado de g es 2t ,
g es invariante (twosided en terminología inglesa) con respecto al producto *h, es decir, dado cualquier polinomio-nc f , existen polinomios-nc f 1, f tales que f *h g = g *h f ' y g *h f = f " *h g,
• para cada 0 ≤ i n - 1, los maximo comun divisor a izquierda y derecha de g y x - ai valen 1.
Dicho polinomio se puede calcular de la siguiente forma: denotamos
Figure imgf000006_0004
y a 2t - Ip. Seleccionamos l elementos g0,g i, .. .,gi- i mediante el siguiente proceso: i) Seleccionamos aleatoriamente l elementosg0,g1,... ,gl-1 en L.
ii) Para cada k = 0 , ... , l - l, calculamos
Figure imgf000007_0001
Llamamos gl = l.
iii) Si
Figure imgf000007_0002
para todo i = l , ... , n , terminamos. Si no, repetimos desde el punto i).
El polinomio-nc modular es
Figure imgf000007_0003
■ Calculo de polinomios-ncde paridad: Se calcula el conjunto de polinomios-nc h0, ... , hn-1 de forma que hi = PCP(x - ai , g) para cada i = 0 , ... , n - l.
Así, tras la realización de este procedimiento la clave privada objeto de la invención estara formada por los elementos:
■ la extension F c L,
■ el entero h,
■ la lista de puntos posicionales E = [a0, ... , an-1],
■ la lista n = [no,.. .,Vn-i],
■ el polinomio-nc modular g y
■ los polinomios-nc de paridad h0, ... , hn-1.
En otro aspecto, la presente invencion también se refiere a un “procedimiento de generación de clave pública de la invención”. Este procedimiento comprende los siguientes pasos:
■ Calculo de una matriz de paridad, H , a partir de los n polinomios-nc de paridad calcu­ lados en el procedimiento de generacion de clave privada de la invencion, siguiendo el siguiente procedimiento:
(1)
Figure imgf000007_0004
Para cada 0 ≤ j n - l, denotamos por hij al coeficiente de grado i de h j , es decir,
(2) Para cada 0 ≤ j n - l y cada 0 ≤ i 2t - l, se calcula hij = (hi j )p((l— mod ií)hnj . (3) Para cada 0 ≤ j n - l y cada 0 ≤ i ≤ 2t - l, se calculan las coordenadas de hij e L con respecto a la base C, obteniendo (h0 i j , ... , hm-1 j ) e Fm.
(4) Para cada 0 ≤ j n - l y cada 0 ≤ i 2mt - l, se denota Hij = hb,aj, donde a y b son el cociente y el resto, respectivamente, obtenidos al dividir i entre m. (5) La matriz H es la matriz con 2tm filas, numeradas de 0 a 2tm - l, y n columnas, numeradas de 0 a n - 1, con valores en F, cuyo valor en la fila i y columna j es H i j .
■ Calculo de la matriz Hpub a partir de la matriz de paridad H siguiendo el siguiente proce­ dimiento:
(1) Calculamos el rango rH de H .Si rH = n - k , Hpub es la forma escalonada reducida por filas de H y terminamos.
(2) De forma aleatoria, seleccionamos una matriz R con n - k - r H filas, n columnas y coeficientes en F .
(3) Consideramos Q la matriz formada por las filas de H y R .
(4) Calculamos la matriz escalonada reducida por filas de Q, Qrref .
(5) Fijamos como Hpub la matriz compuesta por las filas no nulas de Qrref.
(6) Si el rango de Hpub es n - k , terminamos. Si no, repetimos el proceso desde (2). Así, tras la realización de este procedimiento la clave publica objeto de la invención estara formada por la matriz Hpub.
Realizaciones preferentes en función de los parámetros iniciales:
En una realizacion preferente del procedimiento de generacion de clave privada de la invencion, el parametro inicial p se fija en p = 2.
En otra realizacion preferente del procedimiento de generacion de clave privada de la invencion, el parametro inicial p se fija en p = 2 y el parametro 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 invencion se refiere a un procedimiento de cifrado a partir de una clave publica generada por el procedimiento de generacion de clave publica de la invencion, que comprende seleccionar un vector aleatorio en Fn con t componentes no nulas, y multiplicarlo por la traspuesta de la matriz Hpub.
Procedimiento de descifrado de la invencion
El otro aspecto, la invencion tambien se refiere a un procedimiento de descifrado que com­ prende aplicar un algoritmo de decodificacion empleando la clave privada generada por el procedimiento de la invencion.
En una realizacion particular, el procedimiento de descifrado del criptograma, s, cifrado usando una clave publica generada por el procedimiento de generacion de clave publica de la invencion, comprende resolver el sistema lineal s = yH Tub y aplicar un algoritmo de decodificacion a la solucion, y .
En una realizacion preferente, el algoritmo de decodificacion empleado es el algoritmo DEC presentado a continuacion (Figura 5):
Figure imgf000008_0001
Figure imgf000009_0001
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 invencion 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 invencion: Procedimientos de generacion de clave publica o privada, procedimiento de cifrado o procedimiento de descifrado.
Mas concretamente, se consideran objeto de la invencion 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 y 2 ≤ t n .
• Medios para generar un cuerpo finito F con pd elementos.
• Medios para calcular los parametros adicionales k, 5, m, h y p.
• Medios para calcular el cuerpo finito L como extensión de F .
• Medios para llevar a cabo una seleccion aleatoria de un elemento primitivo y e L , una seleccion aleatoria de un elemento a e L que genere una base normal para extension de L sobre el subcuerpo invariante, una seleccion aleatoria de n elementos distintos a o, ... , a „_ i en el conjunto
{ j j aph(ph-1) tales que 0 ≤ j ps - 2,0 ≤ i p - 1} ,
y una seleccion de forma aleatoria, con repeticion o no, de n elementos no nulos en L para formar la lista n = [no,... , nn-i].
• Medios para seleccionar de forma aleatoria un polinomio-nc modular g e L[x] defi­ nido por las siguientes propiedades:
o el grado de g es 2t ,
o g es invariante (twosided en terminología inglesa) con respecto al producto *h, es decir, dado cualquier polinomio-nc f , existen polinomios-nc f , f tales que f *h g = g *h f ' y g *h f = f " *h g,
o para cada 0 ≤ i n - 1, los maximo comun divisor a izquierda y derecha de g y x - ai valen 1.
• Medios para calcular los polinomios-nc de paridad h0, ... , hn-1 de forma que hi = PCP(x - ai, g) para cada i = 0 , ... , n - 1.
• Medios para proporcionar como salida la siguiente informacion que da lugar a una clave privada:
o la extension F c L ,
o el entero h,
o la lista de puntos posicionales E = [a 0, ... , an-1 ],
o la listan = [no, ... , nn-i],
o el polinomio-nc modular g y
o los polinomios-nc de paridad h0, ... , hn-1.
■ 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 parametros n , t , p, d, k, 5, m, h y p ; la extension F c L , y los polinomios-nc de paridad h0, ... , hn-1.
• Medios para realizar el calculo de una matriz de paridad, H , a partir de los n polinomios-nc de paridad siguiendo el siguiente procedimiento:
(1) Para cada 0 < j n - 1, denotamos por hij al coeficiente de grado i de hj , es decir,
Figure imgf000010_0001
(2) Para cada 0 ≤ j n - 1 y cada 0 ≤ i ≤ 2t - 1, se calcula hij = (hi j )p((M-i) mod p)hnj (3) Para cada 0 ≤ j n - 1 y cada 0 ≤ i 2t - 1, se calculan las coordenadas de hij e L con respecto a la base C, obteniendo (h0 i j , ... , hm-1 j ) e Fm.
(4) Para cada 0 ≤ j n - 1 y cada 0 ≤ i 2mt - 1, se denota Hij = hb, aj, donde a y b son el cociente y el resto, respectivamente, obtenidos al dividir i entre m.
(5) La matriz H es la matriz con 2tm filas, numeradas de 0 a 2tm - 1, y n columnas, numeradas de 0 a n - 1, con valores en F, cuyo valor en la fila i y columna j es Hi j .
• Medios para calcular la matriz Hpub a partir de la matriz de paridad H siguiendo el siguiente procedimiento:
(1) Calculamos el rango r H de H .S i rH = n - k , Hpub es la forma escalonada reducida por filas de H y terminamos.
(2) De forma aleatoria, seleccionamos una matriz R con n - k - rH filas, n columnas y coeficientes en F.
(3) Consideramos Q la matriz formada por las filas de H y R.
(4) Calculamos la matriz escalonada reducida por filas de Q, Qrref .
(5) Fijamos como Hpub la matriz compuesta por las filas no nulas de Qrref.
(6) Si el rango de Hpub es n - k , terminamos. Si no, repetimos desde (2).
• Medios para proporcionar como salida la matriz Hpub que da lugar a la clave publica 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 publica realizando los siguientes pasos:
• Medios para introducir en el sistema/aparato los siguientes datos: los parametros 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:
• Medios para introducir en el sistema/aparato los siguientes datos: los parametros n, t, p, d, k , 5, m, h y p; la extensión F c L; los puntos posicionales E = [ a o , a n - i]; la lista n = [no, .. .,vn- í ] ; el polinomio-nc modular g y los polinomios-nc de paridad h0, ... , hn-1.
• Medios para resolver el sistema lineal
Figure imgf000011_0001
• Medios para aplicar el algoritmo de decodificacion DEC a la solucion 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 invencion 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 invencion (Procedimientos de generacion de clave publica 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 codigo objeto o en un codigo intermedio entre codigo fuente y codigo objeto, tal como en forma parcialmente compilada, o en cualquier otra forma adecuada para usar en la implementacion de los procesos de acuerdo con la invencion. En particular, los programas de ordenador tambien abarcan aplicaciones en la nube que implementen alguno de los procedimientos de la invencion.
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 senal 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 ejecucion 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 grabacion magnetica, por ejemplo, un disco flexible o un disco duro. Alternativamente, los programas podrían estar soportados en una senal portadora transmisible. Por ejemplo, podría tratarse de una senal electrica u optica que podría transpor­ tarse a traves de cable eléctrico u optico, por radio o por cualesquiera otros medios.
En este sentido, otro objeto de la invencion 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 invencion cuando se carga en dicho ordenador, sistema o aparato apto para el proceso de datos.
Finalmente, un ultimo objeto de la invencion se refiere a una senal 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 invencion cuando se carga en dicho ordenador, sistema o aparato apto para el proceso de datos.
REALIZACION PREFERENTE DE LA INVENCIÓN
A continuacion se describe una implementacion de un ejemplo de juguete de como seleccionar las claves del criptosistema, el proceso de cifrado y el proceso de descifrado. Se ha implementado en una Notebook de Jupyter del sistema algebraico computacional Sagemath (Python) en un ordenador con procesador Intel Core H de doble nucleo a 3GHz bajo el sistema operativo macOS Big Sur version 11.6.
1. Seleccion de parametros basicos. 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 viene determinado por una cadena de 4 bits, o un caracter hexadecimal. Utilizaremos caracteres hexadecimales para etiquetar los elementos de F segun el siguiente esquema: a3 a + 1 = 1011 = B.
En este caso, dado el reducido tamano de la clave publica, la unica posibilidad es con­ siderar m = 2 y 5 = 4. Para claves de mayor tamano, se seleccionaría aleatoriamente un par de valores (m, 5) entre todos los posibles casos. Por ejemplo, con parametros 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, g = 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 y = Bb + 2, un elemento primitivo de L.
3. Base normal. Seleccionamos aleatoriamente a = 9b 8 e L.
4. Puntos posicionales. De forma aleatoria seleccionamos 16 elementos de L:
ao = 4b 5 a 1 = 1b + F
a2 = 8b + 3 a3 = 3b + D
a4 = 3b 7 a5 = 9
a6 = 8b + B a7 = 3b A
as = 4b 9 a9 = 5b + 2
aio = Cb 6 a 11 = 7b + 6
ai2 = 2b 4 a 13 = Ab + B
ai4 = Cb 1 ai5 = 1b 1
5. Elementos. De forma aleatoria seleccionamos 16 elementos no nulos
no = Fb + D n1 = 5b + F
n2 = 1b + 9 na = 3b 4
n4 = 3b + 4 n5 = 1b D
ne = 4b + F n7 = 7b + B
ns = 7b n9 = 2b 8
n10 = Db F n11 = 9b 7
n12 = 2 b 6 n13 = Ab B
n14 = 3b 6 n15 = Ab 8
6. Calculamos un polinomio g nc-modular
g = x4 7x2 9 e L[x].
7. Calculamos los polinomios-nc de paridad
h0 = 2x3 (8b B) x2
h1 = Dx3 Dbx2 3x 3b
h2 = Dx3 (2b 9) x2 3x Bb 6
h3 = 8x3 (Bb 1) x2 8x Bb 1
h4 = 3x3 (5b F) x2 x + 3b 5
h5 = 9x3 Dx2 5x B
h6 = Fx3 (b + C) x2 x 8b A
h7 = 3x3 (5b B) x2 8x Bb C
h8 = 3x3 Cbx2 8x 6b
hg = 9x3 (Bb 2) x2 5x 2b 7
hio = 8x3 (Ab 9) x2 5x 9b 3
hn = 2x3 (Eb 9) x2
h12 = Fx3 (Db E) x2 Ax 7b 5
h13 = Bx3 (2b 4) x2 Ax 8b 3
hi4 = 9x3 (6b D) x2 Fx 8b E
h15 = Ex3 (Eb B) x2 Fx Fb 5
8. Matriz de paridad. De los coeficientes de los polinomios de paridad obtenemos los coefi­ cientes h ij, que representamos mediante la siguiente matriz, con coeficientes en L,
Figure imgf000014_0002
Expandiendo a coeficientes en F obtenemos la matriz de paridad
Figure imgf000014_0001
9. Calculo de la clave publica. 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 imgf000015_0001
10. Seleccionamos aleatoriamente el secreto compartido, un vector e 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.
11. Cifrado. Ciframos el mensaje multiplicando por la transpuesta de la matriz Hpub y obte­ niendo un mensaje cifrado
s = (F, C, A, 0, 6, D, 8, 3) e F8.
12. Descifrado. El receptor resuelve el sistema lineal
Figure imgf000015_0002
obteniendo, por ejemplo,
Figure imgf000015_0003
3, 0, 0, 0, Aplicando el algoritmo DEC() a y , obtenemos el vector e, descifrando el mensaje.

Claims (13)

REIVINDICACIONES
1. Procedimiento de generación de clave privada que comprende los siguientes pasos:
■ Seleccion parametros iniciales n, t, p y d enteros positivos, de forma que p es primo y 2 ≤ t n .
■ Generacion de un cuerpo finito F con q = pd elementos.
■ Calculo de parametros adicionales k, 5, m, h y p.
• Parametro k: Se define como k = n - 2t m .
• Parametros 5, m: Eleccion aleatoria de entre todos los pares de enteros positi­ vos (5, m) tales que
máx divide a dm y 5 < dm.
Figure imgf000016_0001
J
• Parametro h: Seleccion aleatoria de un entero h tal que 1 ≤ h dm y 5 es el maximo comun divisor de h y dm.
• Parametro p: Se define como p = .
■ Calculo del cuerpo finito L como extension de F.
■ Seleccion, de forma aleatoria, de un elemento primitivo y e L.
■ Seleccion aleatoria de un elemento a e L que genere una base normal para extension de L sobre el subcuerpo invariante.
■ Seleccion, de forma aleatoria, de los n elementos distintos E = [ao,... , a „_ i] en el conjunto { j j aphi(ph-r> tales que 0 ≤ j ps - 2,0 ≤ i p - 1}.
■ Seleccion de forma aleatoria, con repeticion o no, de n elementos no nulos en L para formar la lista n = [p0, ... , pn-1 ].
■ Seleccion aleatoria de un polinomio-nc modular g e L[x] definido por las siguientes propiedades:
• el grado de g es 2t,
g cumple la siguiente propiedad: dado cualquier polinomio-nc f , existen polinomiosnc f , f tales que f *h g = g *h f y g *h f = f *h g,
• para cada 0 ≤ i n - 1, los maximo comun divisor a izquierda y derecha de g y x - ai valen 1.
■ Calculo de polinomios-nc de paridad: Se calculan los polinomios-nc h0, ... , hn-1 de forma que hi = PCP(x - ai , g) para cada i = 0 , ... , n - 1.
2. Procedimiento segun reivindicacion 1 en el que en una realizacion preferente del proce­ dimiento de generacion de clave publica de la invencion, p = 2.
3. Procedimiento segun reivindicacion 2 en el que d = 4 o d = 8.
4. Clave privada formada por los siguientes elementos obtenibles segun cualquiera de las reivindicaciones 1 a 3: la extension F c L, el entero h, la lista de puntos posicionales E = [a0, ... , an-1 ], la lista n = [no,... , nn-1], el polinomio-nc modular g y los polinomiosnc de paridad h0, ... , hn-1.
5. Procedimiento de generacion de la clave publica consistente en la matriz Hpub que com­ prende el calculo de la matriz de paridad H a partir de los polinomios de paridad que forman parte de la clave privada y, a partir de ella, el calculo de la matriz Hpub segun el procedimiento siguiente:
■ Cálculo de una matriz de paridad, H , a partir de los n polinomios-nc de paridad calculados en el procedimiento de generación de clave privada de la invención, si­ guiendo el siguiente procedimiento:
(1) Para cada 0 ≤ j n - 1, denotamos por híj al coeficiente de grado i de hj , es decir,
Figure imgf000017_0001
(2) Para cada 0 ≤ j n - 1 y cada 0 ≤ i 2t- l , se calcula híj = (hí j )p((l— mod >1)hnj (3) Para cada 0 ≤ j n - l y cada 0 ≤ i ≤ 2t - l, se calculan las coordenadas de híj e L con respecto a la base C, obteniendo (h0tíj, hm- 1>íj) e Fm.
(4) Para cada 0 ≤ j n - l y cada 0 ≤ i 2mt - l, se denota Híj = hbaj, donde a y b son el cociente y el resto, respectivamente, obtenidos al dividir i entre m. (5) La matriz H es la matriz con 2tm filas, numeradas de 0 a 2tm - 1, y n columnas, numeradas de 0 a n - l, con valores en F , cuyo valor en la fila i y columna j es Hí j .
■ Calculo de la matriz Hpub a partir de la matriz de paridad H siguiendo el siguiente procedimiento:
(1) Calculamos el rango r H de H .S i rH = n - k , Hpub es la forma escalonada reducida por filas de H y terminamos.
(2) De forma aleatoria, seleccionamos una matriz R con n - k - rH filas, n columnas y coeficientes en F .
(3) Consideramos Q la matriz formada por las filas de H y R.
(4) Calculamos la matriz escalonada reducida por filas de Q, Qrref .
(5) Fijamos como Hpub la matriz compuesta por las filas no nulas de Qrref.
(6) Si el rango de Hpub es n - k , terminamos. Si no, repetimos desde (2).
6. Clave publica, Hpub, obtenible por el procedimiento segun reivindicacion 5.
7. Procedimiento de cifrado a partir de una clave publica generada por el procedimiento segun la reivindicacion 4, que comprende seleccionar un vector aleatorio en F™ con t componentes no nulas, y multiplicarlo por la traspuesta de la matriz Hpub.
8. Procedimiento de descifrado que comprende aplicar un algoritmo de decodificacion em­ pleando la clave privada generada por el procedimiento de la invencion.
9. Procedimiento de descifrado, a partir de una clave privada generada segun cualquiera de las reivindicaciones 1 a 3, de un criptograma cifrado a partir de una clave publica gene­ rada por el procedimiento segun la reivindicacion 4, que comprende resolver el sistema lineal s = yH ûb y aplicar un algoritmo de decodificacion a la solucion.
10. Procedimiento, segun reivindicacion anterior, en el que el algoritmo de decodificacion aplicado a la solucion es el algoritmo DEC.
11. Programa de ordenador que comprende instrucciones para hacer que un ordenador lleve a cabo cualquiera de los procedimientos segun 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 segun reivindicaciones 1 a 10.
13. Senal transmisible que comprende instrucciones de programa capaces de hacer que un ordenador lleve a cabo cualquiera de los procedimientos segun reivindicaciones 1 a 10.
ES202230118A 2022-02-15 2022-02-15 Procedimiento y dispositivo de cifrado/descifrado post-cuántico usando códigos lineales Withdrawn ES2948323A1 (es)

Priority Applications (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
PCT/ES2023/070083 WO2023156698A1 (es) 2022-02-15 2023-02-15 Procedimiento y dispositivo de cifrado/descifrado post-cuántico usando códigos lineales

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
ES2948323A1 true ES2948323A1 (es) 2023-09-08

Family

ID=87577643

Family Applications (1)

Application Number Title Priority Date Filing Date
ES202230118A Withdrawn ES2948323A1 (es) 2022-02-15 2022-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), 20160710 IEEE. , 10/07/2016, Páginas 2519 - 2523 (DOI: doi:10.1109/ISIT.2016.7541753) *

Also Published As

Publication number Publication date
WO2023156698A1 (es) 2023-08-24

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
JP4866389B2 (ja) 閉ガロア体組合せ
EP2423903A1 (en) Encoding apparatus, decoding apparatus, encoding method, decoding method, security method, program, and recording medium
Heyse Implementation of McEliece based on quasi-dyadic Goppa codes for embedded devices
WO2012139919A2 (en) Method and apparatus for public-key cryptography based on error correcting codes
KR20050061544A (ko) 이진 하드웨어에서 홀수 표수의 유한 필드를 사용하는암호화
Hamburg Post-quantum cryptography proposal: ThreeBears
Singh et al. Generalisations of NTRU cryptosystem
US20220407719A1 (en) Methods and systems for encrypting rational numbers and adding randomness to rsa cryptosystems using p-adic numbers
JP6059347B2 (ja) 復号装置、復号能力提供装置、それらの方法、およびプログラム
Strenzke A smart card implementation of the McEliece PKC
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
JP7273742B2 (ja) 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム
Baba et al. A non-abelian factorization problem and an associated cryptosystem
Ajeena Integer sub-decomposition (ISD) method for elliptic curve scalar multiplication
Barreto et al. A panorama of post-quantum cryptography
ES2948323A1 (es) Procedimiento y dispositivo de cifrado/descifrado post-cuántico usando códigos lineales
Kindberg A usability study of post-quantum algorithms
Umana Post-quantum cryptography
Kratochvíl Implementation of cryptosystem based on error-correcting codes
Mittal et al. A retrospective study on NTRU cryptosystem
Minihold Linear codes and applications in cryptography

Legal Events

Date Code Title Description
BA2A Patent application published

Ref document number: 2948323

Country of ref document: ES

Kind code of ref document: A1

Effective date: 20230908

FA2A Application withdrawn

Effective date: 20240103