Sunteți pe pagina 1din 7

S79-Cano, Luna y Rojas_Maquetación 1 24/8/15 22:15 Página 33

Cómo compartir
un secreto usando sistemas
Artículos
Julio 2015
79
pp. 33-39
de ecuaciones lineales
Alberto CAno rojAs
josé MAríA lunA ArizA
ÁngelA rojAs MAtAs

E xisten ocasiones donde una información secreta


no es deseable que esté en manos de una sola
persona. Puede interesar que varias personas posean
33
79

parte de dicha información y que sólo se consiga


recuperar la información completa si juntamos a
supongamos que deseamos compartir una varias de estas personas. Por ejemplo, al dueño de
información secreta entre varias personas de modo
que ninguna de ellas conozca el secreto pero
una empresa puede que le interese que ningún em-
cuando se junten un número autorizado de ellas sí pleado de la misma posea la clave que abre la caja
que puedan averiguarlo completamente. En este fuerte. Por el contrario, puede repartir entre 6 em-
trabajo se muestra una interesante aplicación de los
sistemas de ecuaciones lineales a este tema que ha
pleados, por ejemplo, parte de la información se-
conseguido atraer la atención del nuestro creta, de forma que para conseguir la clave de la
alumnado de la asignatura de Álgebra lineal. caja fuerte tengan que juntarse al menos 3 de los 6
Palabras clave: Innovación Docente, Álgebra lineal, empleados. este sería un ejemplo de cómo com-
resolución de sistemas de Ecuaciones lineales,
Motivación del proceso Enseñanza-Aprendizaje,
partir un secreto (6, 3). también se conoce con el
universidad. nombre de esquema umbral (6, 3).
estos protocolos criptográficos fueron publicados
How share a secret using linear equations systems
por primera vez por el criptógrafo shamir (1979) del
secret sharing is a cryptographic method that aims Mit (Massachusetts institute of technology) y por
to distribute a secret information among several
people so that none of them know the secret. the blakley (1979). Actualmente tienen aplicaciones en:
secret can be reconstructed only when a sufficient
number of shares are combined together. this work — el control de accesos
presents an interesting application of systems of — la apertura de cajas de seguridad
linear equations for sharing secrets that has — la inicialización de dispositivos militares
attracted the attention of our students from the
subject of linear algebra. — etc.
Keywords: teaching Innovation, linear Algebra, Podemos comprobar el gran interés que despierta
solving systems of linear Equations, Motivation of
the teaching-learning Process, university. este tipo de protocolo criptográfico viendo la gran

Artículo recibido en Suma en abril de 2014 y aceptado en octubre de 2014


S79-Cano, Luna y Rojas_Maquetación 1 24/8/15 22:15 Página 34

JulIo
2015
cantidad de publicaciones relacionadas con el tema Cuando se junten dos cualesquiera de
(Chang y otros, 2008; M. ulutas, V. nabiyev, 2009; los participantes obtendrán un sistema
r. zhao y otros, 2009; P. Y. lina, C. s. Chang, 2010; lineal de dos ecuaciones con dos incóg-
X. Hei, X. Du, 2012). Por esta razón pensamos que nitas compatible determinado cuya so-
podría ser un tema de interés para los alumnos de lución única podrán conseguir resol-
la asignatura de Álgebra lineal de primer curso de viendo el sistema, obteniendo así el
ingeniería informática. secreto.
los esquemas umbrales se pueden llevar a cabo con Por ejemplo, supongamos que en un es-
distintos métodos. el esquema umbral que vamos quema (3, 2) se sabe que la matriz A es:
a usar en ese trabajo usa los sistemas de ecuaciones
- 1 1 BD
lineales que se estudian en Álgebra lineal. AA D
A = AA 1 2 DDD
AA D
A@ 4 7 DDC
Planteamiento del esquema Al primer participante se le da 12, al se-
gundo se le da 14 y al tercero se le da 54
Vamos a ver un esquema (3, 2). Participan 3 perso- de forma secreta a cada uno de ellos.
nas y sólo cuando se junten 2 de ellas podrán recu-
perar el secreto. supongamos que el secreto es un se puede recuperar el secreto en los tres
número s. casos siguientes:

34 el dueño del secreto escoge un vector (x1, x2) donde 1) si se juntan los participantes 1 y 2
79 x1 = s (lo hace coincidir con el secreto) y x2 es elegido 2) si se juntan los participantes 1 y 3
de forma aleatoria. 3) si se juntan los participantes 2 y 3

Para cada participante i calcula: ai 1x1 + ai 2x2 = bi , Por ejemplo, si se juntan los participantes
donde los coeficientes son elegidos aleatoriamente 1 y 3, el sistema será:
también. "'
x 1 + x 2 = 12 ''
Como tenemos tres participantes, tendremos el si- $
4 x 1 + 7x 2 = 54 ''
guiente sistema lineal: '*
resolviendo obtenemos el secreto
a11 x 1 + a12 x 2 = b1 '"' x1 = s = 10. el mismo resultado se obten-
''
a 21 x 1 + a 22 x 2 = b2 $ drá en los otros dos casos.
''
a 31 x 1 + a 32 x 2 = b3 ''
'*
el dueño del secreto hace pública la matriz de los Cómo debe ser la matriz
coeficientes del sistema:
para un esquema umbral
- a BD
AA 11 a 12 DD en un esquema (4, 3) se sabe que la matriz
A DD
A = AA a 21 a 22 DD A es:
AA DD
AA a 31 a 32 DC - BD
@ AA 1 1 1 DD
A DD
A = AAA
Y le proporciona al participante 1 el valor b1 al par- 1 2 2
DD
ticipante 2 el valor b2 y al participante 3 el valor b3. AA 1 3 4 DD
AA DD
@ 1 4 7 DC
supongamos que la matriz A es de rango 2 y que
cualesquiera dos filas de A son linealmente inde- Al primer participante se le da 4, al se-
pendientes. gundo 3, al tercero 2, al cuarto 1.

AlbErto cAno roJAs, José MAríA lunA ArIzA y ÁngElA roJAs MAtAs
S79-Cano, Luna y Rojas_Maquetación 1 24/8/15 22:15 Página 35

en el ejemplo anterior se puede obtener — si se juntan 1, 2 y 4 se obtiene un determinante JulIo


2015
el secreto siempre: nulo de la matriz de los coeficientes (las tres
filas de A son linealmente dependientes) y el
— si se juntan los participantes 1, 2 y 3
sistema es un sistema compatible indetermi-
se obtiene un sistema lineal de 3 ecua-
nado. entonces no se puede recuperar el secreto
ciones con 3 incógnitas donde la ma-
ya que habría infinitas soluciones. Por lo tanto
triz de los coeficientes es:
esa matriz A no sería una matriz válida para un
- 1 1 1 BD esquema (4, 3).
AA DD
AA 1 2 2 DD
AA DD Para que la matriz sea válida para un esquema (4, 3)
A@ 1 3 4 DC debe ser una matriz en la que tres filas cualesquiera
cuyo determinante es no nulo. Por de ella sean linealmente independientes, o lo que es
tanto, el sistema es un sistema com- lo mismo, cualquier submatriz formada por tres
patible determinado, cuya solución es filas de debe ser de rango 3.
x1 = 5. Por lo tanto, el secreto es 5.
— si se juntan los participantes 1, 2 y 4
se obtiene también un sistema con Esquema umbral con congruencias
solución única y el secreto es 5.
— si se juntan los participantes 1, 3 y 4 la idea anterior puede adaptarse fácilmente para
se obtiene también un sistema con trabajar con congruencias. esto nos va a permitir
solución única y el secreto es 5. repartir un texto o una imagen digital. Veámoslo 35
— si se juntan los participantes 2, 3 y 4 con un ejemplo. 79
se obtiene también un sistema con supongamos que tenemos la palabra secreta «MAr»
solución única y el secreto es 5. y que tenemos un alfabeto de 27 caracteres como
Por lo tanto, la matriz A debe ser de rango el siguiente:
3 y cualesquiera tres filas de la matriz de-
A b c D E F g H I J K l M n Ñ
ben ser linealmente independientes para 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
que los sistemas anteriores sean sistemas o P Q r s t u V W X y z
15 16 17 18 19 20 21 22 23 24 25 26
compatibles determinados
supongamos que tenemos un esquema entonces «MAr» equivale a {12, 0, 18}. trabajare-
(4, 3) donde la matriz A fuera la siguiente: mos con módulo m = 27.
- 1 1 1 BD usamos la matriz siguiente para hacer un esquema
AA D (3, 2):
AA 1 2 2 DD
A = AA DD
AA 1 3 4 DDD - 1 1 BD
AA 2 3 3 DDD AA D
@ C A = AA 1 2 DDD
AA D
Al primer participante se le da 4, al se- A@ 4 6 DDC
gundo 3, al tercero 2, al cuarto 7.
el primer elemento de la lista secreta es s = 12. en-
— si se juntan los participantes 1, 2 y 3, tonces, x1 = s = 12 y x2 = 3 es elegido aleatoriamente.
se obtiene un determinante no nulo se calcula a continuación:
de la matriz de los coeficientes, por
tanto, el sistema es un sistema compa- y 1 = x 1 + x 2 = 15   (mod  27) E O
tible determinado (las tres filas de A
son linealmente independientes), en- y 2 = x 1 + 2 x 2 = 18 (mod  27) E R
tonces se puede recuperar el secreto. y 3 = 4  x 1 + 6 x 2 = 66 = 12 (mod  27) E M

cóMo coMPArtIr un sEcrEto usAnDo sIstEMAs DE EcuAcIonEs lInEAlEs


S79-Cano, Luna y Rojas_Maquetación 1 24/8/15 22:15 Página 36

JulIo
2015
la misma idea se aplica al segundo elemento de la - 1 1 1 0 BD f 2 E f 2 F4 f 1
lista secreta. en este caso x1 = s = 0 y x2 = 5 es elegido AA D
AA@ 4 6 | 0 1 DDC E
aleatoriamente.
y 1 = x 1 + x 2 = 5   (mod  27) E F
f 2 E f 2 F4 f 1
- B
E AAA 1 1 | 1 0 DDD =  
A@ 0 2 F4 1 DC
y 2 = x 1 + 2 x 2 = 10 (mod  27) E K
- B
y 3 = 4  x 1 + 6x 2 = 30 = 3 (mod  27) E D = AAA 1 1 | 1 0 DDD(mod  27)
A@ 0 2 23 1 DC
Por último, repetimos para el tercer elemento de la
lista secreta: x1 = s = 18 y x2 = 4 que es elegido alea- Hallamos el inverso de 2 módulo 27 y re-
toriamente. sulta ser 14 ya que 2 ¥14 =28=1(mod 27).
entonces:
y 1 = x 1 + x 2 = 22   (mod  27) E V
f 2 E f 2 (14)
y 2 = x 1 + 2 x 2 = 26 (mod  27) E Z - 1 1 1 0 BD
E AA DD =
AA@ 0 2 ×14 | 23 ×14 1×14 DC
 
y 3 = 4  x 1 + 6x 2 = 96 = 15 (mod  27) E O
Al primer participante se le proporciona OFV, al - 1 1 1 0 BD f 1 E f 1F f 2

= AAA | DD (mod  27) E


segundo RKZ y al tercero MDO de forma secreta a A@ 0 1 25 14 DC
cada participante. la matriz A será pública. f 1 E f 1F f 2
- 1 0 F24 F14 BD
    E AA DD =
¿Cómo se averigua el secreto? es sencillo. Hay que AA@ 0 1 | 25 14 DC
    

36 deshacer lo que hemos hecho anteriormente.


- B
79 supongamos que se juntan   los  participantes 1 y 3, = AAA 1 0 | 3 13 DDD  (mod  27)
A@ 0 1 25 14 DC
por ejemplo. el participante 1 aporta OFV = {15,
f 2 E f 2 (14)
5, 22} y el participante 3 aporta MDO = {12, 3, 15}. - 1 1 1 0 BD
E AA DD =
AA@ 0 2 ×14 | 23×14 1×14 DC
 
Para recuperar la primera letra del mensaje secreto
se debe resolver el sistema: - B f 1 E f 1F f 2

= AAA 1 1 | 1 0 DDD (mod  27) E


" A@ 0 1 25 14 DC
x 1 + x 2 = 15 (mod    27) ''
'$ f1E f1F f 2
- 1 0 F24 F14 BD
4  x 1 + 6x 2 = 12 (mod   27) ''     E AA DD =
'* AA@ 0 1 | 25 14 DC
    
este sistema se puede expresar matricialmente de - B
la forma:     = AAA 1 0 | 3 13 DDD  (mod  27)
A@ 0 1 25 14 DC
- 1 1 BD-A x 1 BD - 15 BD Por lo tanto, la inversa es:
AA DA D A DD   (mod  27)
AA@ 4 6 DDCAA x DDD = AAA@ 12 DC
A@ 2 DC - B
H F1 = AAA 3 13 DDD (mod  27)
¿será A@ 25 14 DC
- B efectivamente, podemos comprobar
H = AAA 1 1 DDD cómo H H–1 = I (mod 27).
A@ 4 6 DC
Hay que observar que no podríamos ha-
inversible módulo 27? ber calculado la inversa si 2 no hubiera
se puede hacer de dos formas, o bien por opera- tenido inverso módulo 27.
ciones elementales por filas o bien usando determi- si se hubiera hecho con determinantes,
nantes pero trabajando módulo 27. hubiéramos razonado de la siguiente
si lo hacemos por operaciones elementales: forma:

AlbErto cAno roJAs, José MAríA lunA ArIzA y ÁngElA roJAs MAtAs
S79-Cano, Luna y Rojas_Maquetación 1 24/8/15 22:15 Página 37

Por lo tanto, el primer número secreto es 12 que se JulIo

H = 1 1 =2G0
2015
corresponde con una M. De la misma forma se ob-
4 6
tienen el resto de números secretos.
entonces:
una observación: hemos tenido que resolver siste-
— Matriz adjunta de H: mas lineales de dos ecuaciones con dos incógnitas
- 6 F4 BD - 6 23 BD donde sólo se desea el valor de la primera incógnita.
AA D A
AA@ F1 1 DDC = AAA@ 26 1 DDC (mod  27)
D se podría resolver también por el método de Cramer
de la siguiente forma:
— Matriz transpuesta de la anterior:
- 6 26 BD b1 h12
AA D
AA@ 23 1 DDC h11 x 1 + h12 x 2 = b1 "' b2 h22
''
$ H x1 =   (mod  27)
— Dividimos por el determinante, o lo h21 x 1 + h22 x 2 = b2 '' h h
'* 11 12
que es lo mismo, multiplicamos por h21 h22
el inverso de 2 que era 14:
- B De todas formas, se tendrá que calcular el inverso
H F1
= 2 AAA 6 26 DDD =
F1
de    
A@ 23 1 DC
h11 h12
- B - B H=  (mod 27)
= 14 AAA 6 26 DDD = AAA 84 364 DDD =     h21 h22
A@ 23 1 DC A@ 322 14 DC 37
para poder hallar el secreto.
- B 79
= AAA 3 13 DDD (mod  27) el módulo, en este caso 27, no es primo y esto difi-
A@ 25 14 DC
culta el cálculo de matrices válidas en el esquema
observar que el último paso exige dividir umbral. Para que una matriz sea inversible, en la
por el determinante, o lo que es lo mismo, aritmética habitual, es suficiente con que su deter-
multiplicar por el inverso del determi- minante sea no nulo. eso no ocurre exactamente
nante. Por lo tanto debe ocurrir que el así cuando se trabaja con congruencias. en el caso
determinante tenga inverso módulo 27. anterior, por ejemplo, es necesario que |H| no sólo
esto se cumple siempre que sea primo sea no nulo sino que además debe ser primo relativo
relativo con el módulo. Como 2 y 27 son con el módulo 27.
primos relativos, 2 tiene inverso módulo
el uso módulos primos facilita este asunto. Así, si
27 que, como ya sabemos, era 14. en ge-
trabajamos por ejemplo, con módulo 31 que es
neral, una matriz es inversible módulo m
primo, cualquier matriz H con determinante no
si y sólo si su determinante es primo rela-
nulo será inversible y podremos calcular sin ningún
tivo con m.
problema el inverso de
el sistema se puede resolver ahora:
h11 h12
- x BD
AA 1 D - B H=  (mod 31)
AA DD = H F1 AA 15 DDD  = h21 h22 
AA@ 12 DC
A@ x 2 DDC
- B- BD
  = AAA 3 13 DDDAAA 15 DD =  
A@ 25 14 DCA@ 12 DC Cómo compartir una imagen secreta
- B - BD
   = AAA 201 DDD = AAA 12 DD(mod  27) el esquema umbral desarrollado anteriormente se
A@ 543 DC A@ 3 DC puede aplicar a imágenes digitales (thien y lin,

cóMo coMPArtIr un sEcrEto usAnDo sIstEMAs DE EcuAcIonEs lInEAlEs


S79-Cano, Luna y Rojas_Maquetación 1 24/8/15 22:15 Página 38

JulIo
2015
2002). una imagen digital en escala de grises no es — Haremos: x1 = g, x2 = a
más que una matriz donde cada elemento de la ma- — efectuaremos el producto:
triz nos da el nivel de gris del píxel correspondiente. - B
- x BD AA s 1 DDD
en esta sección vamos a aplicar las ideas anteriores A A D
A AA 1 DDD = AA s 2 DD  (mod  251)
a la imagen secreta que se muestra en la figura 1. AA x DD AA D
@ 2 C A s DDD
Vamos a desarrollar concretamente un esquema (3, A@ 3 C
2), por ejemplo.
— entonces hacemos:
S1(i, j ) = s1, S2(i, j ) = s2, S3(i, j ) = s3,
De esta forma se obtienen las imágenes
de la figura 2. Al participante i-ésimo se
le proporciona la imagen S2.
Como vemos, ningún participante puede
ver el secreto sino que recibe una imagen

38 Figura 1. Imagen secreta

79
las imágenes en escala de grises más habituales tie-
nen 256 niveles de gris (desde 0 hasta 255). Como
trabajar módulo 256 puede traer problemas porque
256 no es primo, vamos a trabajar con 251 que es el
número primo más próximo. Cogeremos una ima-
gen en escala de grises donde el nivel de gris máximo
va a ser 250. si no es así, los valores superiores a
250 se pondrán a 250. todos los niveles de gris de
la imagen de la figura 1 están entre 0 y 250.
la matriz pública será, por ejemplo, la siguiente:
- 1 1 BD
AA D
A = AA 1 2 DDD
AA D
A@ 1 3 DDC
Crearemos tres matrices del mismo tamaño que la
imagen secreta, en principio con todos sus elemen-
tos nulos, que indicaremos por S1, S2 y S3, una para
cada participante.
A cada nivel de gris de la imagen secreta se le aplicará
el siguiente proceso:
— sea g el nivel de gris de la imagen secreta corres-
pondiente al píxel situado en la posición (i, j ).
elegiremos un valor aleatorio entre 0 y 250. Figura 2. Imágenes S1, S2 y S3

AlbErto cAno roJAs, José MAríA lunA ArIzA y ÁngElA roJAs MAtAs
S79-Cano, Luna y Rojas_Maquetación 1 24/8/15 22:15 Página 39

en escala de grises con aspecto aleatorio. el método desarrollado en este trabajo, en su versión JulIo
2015
sin embargo, cuando dos de ellos se jun- más simple, sin el uso de congruencias, puede apli-
ten sí que podrán recuperar la imagen se- carse a alumnos de bachillerato.
creta de la figura 1.
la creación de las imágenes por parte del
dueño del secreto y la posterior recupera- Referencias bibliográficas
ción de la imagen secreta la hemos reali- blAKleY, g. r. (1979), «safeguarding cryptographic
zado con Matlab pero también puede ha- keys», Proceedings of the 1979 National Computer Con-
cerse con octave, que es una versión libre ference, n.º 48, 313-317.
de Matlab. el código fuente se encuentra CHAng, C. C., C. C. lin, C. H. lin y Y. H. CHen (2008),
disponible para su descarga desde la web «A novel secret image sharing scheme in color im-
en: <http://www.uco.es/users/i52caroa/ ages using small shadow images», Information Sciences,
secretos.zip>. vol. 178, n.º 11, 2433–2447.
Hei, X. y X. Du (2012), «two matrices for blakley’s se-
cret sharing scheme», Proceedings on IEEE International
Conclusión Conference on Communications (ICC), 810-814.
linA, P. Y., y C. s. CHAn (2010), «invertible secret image
Hemos visto en este trabajo cómo el Ál- sharing with steganography», Pattern Recognition Let-
gebra lineal se puede aplicar a un tema ters, vol, 31, n.º 13, 1887–1893.
de interés para un alumno de primer curso sHAMir, A. (1979), «How share a secret», Communications
de ingeniería informática. Además usamos of the ACM, vol. 22, nº. 11, 612-613. 39
en esta actividad conocimientos que los tHien, C. C., y j.C. lin (2002), «secret image sharing», 79

alumnos trabajan en otras asignaturas de Computer and Graphics, vol. 26, nº. 5, 765-770.
primero ya que necesitan saber Programa- ulutAs, M., y V. nAbiYeV (2009), «improvements in
ción, Matemática Discreta (donde estudian geometry-based secret image sharing Approach
with steganography», Mathematical Problems in Engi-
las congruencias) y Álgebra lineal.
neering, 1-12.
Creemos que con este tipo de actividades zHAo, r., j. zHAo, F. DAi y F. zHAo (2009), «A new image
conseguimos motivar más a nuestro alum- secret sharing scheme to identify cheaters», Computer
nado. Standards & Interfaces, vol. 31, n.º 1, 252–257.

AlbErto cAno roJAs


Departamento de Informática y Análisis Numérico, Universidad de Córdoba.

José MAríA lunA ArIzA


Departamento de Informática y Análisis Numérico, Universidad de Córdoba.

ÁngElA roJAs MAtAs


Departamento de Matemáticas, Universidad de Córdoba
y miembro de la Sociedad Andaluza de Educación Matemática «Thales».

cóMo coMPArtIr un sEcrEto usAnDo sIstEMAs DE EcuAcIonEs lInEAlEs

S-ar putea să vă placă și