No existe tal cosa como una escala de seguridad unidimensional que permita calificar a todos o incluso a la mayoría de los escenarios como de seguridad baja, media o alta. Cada escenario tiene contexto, requisitos, objetivos y, en general, un modelo de ataque .
En cualquier caso, El intercambio secreto de Shamir es "perfecto", ya que es uno de los muy pocos algoritmos que ofrecen seguridad incondicional: incluso las computadoras infinitamente poderosas no podrían romper las funciones ofrecidas por ese esquema.
¿Cuáles son estas características? A saber:
- El algoritmo funciona en un campo finito K . Las implementaciones prácticas utilizan GF (256) , es decir, bytes .
- Sea m una secuencia de elementos de K (es decir, algunos bytes).
- Sea n el "número de acciones" y t el "umbral" de manera que n ≥ t ≥ 1.
- El algoritmo produce n "acciones", donde cada acción es una secuencia de elementos de K de la misma longitud que m . Las acciones son tales que cualquier subconjunto de acciones t es suficiente para reconstruir eficientemente m ; pero cualquier subconjunto de acciones de t-1 no produce información alguna sobre m (excepto, por supuesto, su longitud).
Independientemente de su perfección, el algoritmo es solo para transit : en el momento en que se producen las acciones, el valor m existe como un todo en algún sistema físico; y cuando el valor m se debe reconstruir, se reconstruye : nuevamente existe como un todo en algún otro sistema físico. La división opera solo entre estos dos puntos en el espacio-tiempo. Es suficiente para algunos usos, algunos de los cuales son posiblemente de "alta seguridad"; Lo he usado, por ejemplo, para dividir una copia de respaldo de una llave maestra en un sistema de administración de tarjetas inteligentes (la llave maestra existe en un sistema específico; la copia de respaldo se realizó para poder recuperarse de una pérdida catastrófica como una inundación o fuego).
Ningún algoritmo lo hace todo. Hay escenarios en los que las funciones de seguridad de Shamir's Secret Sharing no coinciden con las necesarias. En un contexto de "acciones" y "umbral", hay, por ejemplo, firmas de grupo : esto es para situaciones donde se deben producir firmas digitales, sin que una sola entidad sea capaz de generar firmas por sí misma. Pero también queremos que esta propiedad se mantenga incluso si se producen muchas firmas. Si quisiera usar Shamir's Secret Sharing para eso, entonces dividiría una clave privada de firma normal y la reconstruiría al firmar, pero esto requiere un "sistema confiable", tanto para la generación de claves como para su uso. Ese sistema, de forma transitoria, adquirirá conocimiento de la clave completa. Si esto es inaceptable para usted, entonces tiene que hacer otra cosa, y para eso están destinados los algoritmos de firma de grupo. Una firma de grupo permite que una firma sea generada por acciones colectivas de suficientes propietarios de acciones clave, sin que la clave privada sea revelada a ninguno de ellos, por muy deshonesto que sea.
Los algoritmos de grupo son inherentemente más restrictivos que el intercambio de secretos de Shamir, ya que, por definición, no reconstruyen el secreto que se dividió; como tales, solo pueden calcular una función específica que involucre el secreto (por ejemplo, generación de firmas o descifrado asimétrico). Por otro lado, los buenos algoritmos de grupo pueden evitar hasta cierto punto la necesidad de un sistema confiable (muchas firmas de grupo tienen umbrales de honestidad: si suficientes propietarios de recursos compartidos de claves maliciosos cooperan entre sí, pueden ganar algo de poder adicional). >
Los algoritmos de grupo no son ni más ni menos seguros que el intercambio secreto de Shamir; simplemente hacen otra cosa.