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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 81
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 24
- 239000011159 matrix material Substances 0.000 claims description 43
- 238000004364 calculation method Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 4
- 238000005538 encapsulation Methods 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000007630 basic procedure Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 101100082633 Drosophila melanogaster nub gene Proteins 0.000 description 1
- ZKZBPNGNEQAJSX-REOHCLBHSA-M L-selenocysteinate group Chemical group N[C@@H](C[SeH])C(=O)[O-] ZKZBPNGNEQAJSX-REOHCLBHSA-M 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- NQLVQOSNDJXLKG-UHFFFAOYSA-N prosulfocarb Chemical compound CCCN(CCC)C(=O)SCC1=CC=CC=C1 NQLVQOSNDJXLKG-UHFFFAOYSA-N 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/304—Public 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Cash Registers Or Receiving Machines (AREA)
- Radar Systems Or Details Thereof (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.
• 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 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
■ Seleccion aleatoria de n elementos distintos a0, ... , an-1 en el conjunto
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 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
Llamamos gl = l.
para todo i = l , ... , n , terminamos. Si no, repetimos desde el punto i).
■ 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:
(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):
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:
(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 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,
Expandiendo a coeficientes en F obtenemos la matriz de paridad
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,
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.
Claims (13)
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.
• 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:
(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.
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)
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 |
-
2022
- 2022-02-15 ES ES202230118A patent/ES2948323A1/es not_active Withdrawn
-
2023
- 2023-02-15 WO PCT/ES2023/070083 patent/WO2023156698A1/es unknown
Patent Citations (4)
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)
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 |