Los esquemas para compartir secretos son la pieza esencial de la criptografía distribuida, dado que éstos permiten definir políticas de acceso a recursos compartidos por un conjunto de usuarios.
En un esquema para compartir secretos se reparte el valor de un secreto en fragmentos entre los participantes de un conjunto 𝒫 = {P1,…,Pn}, de forma que sólo ciertos subconjuntos, denominados autorizados, pueden reconstruir el secreto a partir de su información privada.
Los esquemas para compartir secretos se introdujeron de forma independiente por Blackley [4] y Shamir [17] en 1979.
La familia de subconjuntos de 𝒫 autorizados Γ se denomina estructura de acceso y es monótona, es decir, si un subconjunto A contiene un subconjunto B autorizado, entonces A también debe ser autorizado.
En un esquema para compartir secretos, con estructura de acceso Γ y conjunto de posibles secretos K, a partir de un valor secreto s ∈ K y de una cierta elección aleatoria, cada participante Pi recibe privadamente un fragmento si ∈ Si, donde Si denota el conjunto de posibles fragmentos de Pi. Normalmente, se exige que el esquema de compartir secretos sea perfecto, es decir,
En algunas ocasiones, la segunda propiedad se relaja, permitiendo que algunos conjuntos no autorizados sean capaces de adquirir cierta información limitada sobre el secreto, pero en este documento solamente trataremos el caso perfecto.
Los primeros esquemas de compartir secretos que se introdujeron utilizaban la llamada estructura de acceso de umbral, en la que un conjunto A es autorizado si el número de participantes que contiene iguala o supera cierto umbral t, independientemente de la identidad de los mismos. A continuación describiremos el esquema de umbral de Shamir, que es quizás el esquema para compartir secretos más ampliamente utilizado.
Consideremos el conjunto de participantes 𝒫 = {P1,P2,...,Pn} y un entero t tal que 1 ≤ t ≤ n. La estructura de acceso Γ es la de umbral (t,n), en la que un conjunto A es autorizado si consiste en t o más participantes. El conjunto de posibles secretos es un cuerpo finito, que por simplicidad, vamos a suponer que es el cuerpo primo ℤp, siendo p un número primo. En todo caso, el tamaño del cuerpo, p, debe ser estrictamente mayor que el número de participantes, n.
En la fase inicial, a cada participante se le asigna un elemento xi del cuerpo ℤp, de modo que los valores xi son todos no nulos y diferentes entre si. Los valores xi así como el tamaño del conjunto de secretos, p ,forman parte de la descripción pública del esquema.
Para distribuir un secreto s ∈ ℤp se toma al azar un polinomio de grado menor o igual que t − 1, r(x), tal que r(0) = s. Cada participante recibe como fragmento si = r(xi). Debido a que el valor del secreto y los coeficientes del polinomio han de mantenerse secretos, esta fase la lleva a cabo una entidad especial de confianza D llamada distribuidor.
Veamos un ejemplo: En ℤ17 diseñamos un esquema de umbral (3, 4), los participantes son P1, P2, P3, P4 y los elementos asignados son x1 = 1, x2 = 2, x3 = 3, x4 = 6, respectivamente. El valor secreto a repartir es s = 2 y el polinomio elegido por el distribuidor es r(x) = 2x2 − 4x + 2. Entonces, los fragmentos de cada participante serán s1 = 0, s2 = 2, s3 = 8, s4 = 1, respectivamente. Ahora, los participantes P1, P2 y P3 pueden colaborar entre ellos para construir el único polinomio de grado menor o igual que 3 que pasa por los puntos (1, 0), (2, 2) y (3, 8), que debe coincidir con r(x). El término independiente r(0) es exactamente el secreto compartido.
Por otra parte, si sólo colaborasen los participantes P1 y P2, para cualquier valor del secreto s existe un único polinomio de grado menor o igual que 3 que pasa por los puntos correspondientes, (1, 0) y (2, 2), y por el punto (0,s). Por tanto, aún conociendo esos dos fragmentos, el secreto sigue siendo completamente desconocido, ya que todos los valores posibles siguen siendo equiprobables.
A diferencia de otros protocolos criptográficos, la seguridad del esquema de Shamir es incondicional, dado que un adversario con capacidad computacional ilimitada no puede extraer información alguna sobre el secreto s aunque conociese t − 1 fragmentos del mismo.
Los valores extremos del umbral, es decir los esquemas de umbral (n,n) y los de umbral (1,n), merecen atención especial. En el esquema (n,n) la reconstrucción del secreto requiere la colaboración de todos los participantes, lo que admite una construcción sumamente sencilla: Cada participante Pi recibe un fragmento aleatorio si ∈ ℤp, y el secreto compartido es la suma (módulo p) de todos ellos, s = s1 + … + sn.
El otro caso extremo es trivial, ya que la estructura de umbral (1,n) justamente indica que cada participante puede individualmente recuperar el secreto. Por ello, el esquema consiste en entregar directamente dicho secreto a cada participante, es decir, si = s.
Debemos observar que en las dos construcciones anteriores desaparece la limitación sobre el tamaño del cuerpo, p, ya que puede ser ahora arbitrariamente pequeño (incluso p = 2) e independiente del número de participantes.
Los dos casos extremos de estructuras de umbral resultan especialmente útiles como piezas auxiliares en la definición de estructuras de acceso más complejas y versátiles, como veremos en secciones posteriores.
Un aspecto a tener en cuenta en algunos esquemas de compartición de secretos es la posibilidad de efectuar operaciones básicas sobre distintos secretos sin tener que reconstruirlos previamente, es decir, operando únicamente sobre los fragmentos. Concretamente, un esquema para compartir secretos es aditivamente homomórfico sobre ℤp si cada participante Pi puede combinar los fragmentos si(a) y s i(b) recibidos en la compartición de dos secretos s(a) y s(b), respectivamente, para obtener un nuevo fragmento del secreto suma s(a) + s(b).
El esquema de Shamir disfruta de esa propiedad, dado que la suma de los fragmentos de dos secretos repartidos con el mismo umbral t equivale a la compartición de la suma de los dos secretos, también con el mismo umbral. En efecto, cada secreto se reparte por medio de un polinomio aleatorio, de modo que la suma de polinomios corresponderá tanto a la suma de los secretos como a la suma de los fragmentos de cada participante.
El esquema también puede dotarse de propiedades homomórficas multiplicativas, pero ello requiere añadir comunicaciones adicionales entre los participantes.
Existen varias medidas sobre la eficiencia de un esquema para compartir secretos. Enumeramos a continuación los aspectos más relevantes a tener en cuenta desde el punto de vista de las aplicaciones de los mismos:
Se demuestra que en un esquema para compartir secretos perfecto, el tamaño de los fragmentos no puede ser inferior al del secreto. Si se da la igualdad, el esquema se denomina ideal.
No todas las estructuras de acceso admiten esquemas ideales, por lo que la eficiencia del esquema estará limitada en particular por la estructura de acceso que pretenda implementar. Como se desprende de la propia existencia del esquema de Shamir, las estructuras de umbral admiten esquemas ideales.