signature – Mensaje de firma y verificación que consta de varias partes

Pregunta:

Dado un mensaje $m$ que consta de varias partes. queremos poder verificar partes individuales o una combinación de las mismas.

La solución más sencilla es firmar cada parte de forma independiente. Pero dado que las firmas asimétricas son relativamente costosas de calcular y verificar, ese podría no ser el enfoque más eficiente.

¿Existe un enfoque alternativo eficiente y más rápido para este problema?

Respuesta:

La forma estándar de hacer esto es con una lista hash . Es decir, codificaría cada uno de los mensajes $m_i$ para producir un hash $h_i = H(m_i)$, y luego combinaría todos los hash y los codificaría para obtener un hash maestro $h = H(h_0 \| h_1 \ | h_2 \| \puntos \| h_n)$. Finalmente, puede, por ejemplo, firmar digitalmente el hash maestro para demostrar que usted envió el hash y, por extensión, todos los mensajes.

(Por supuesto, también puede usar un MAC con clave en lugar de un hash para esto, si lo desea).

Las listas hash también se pueden generalizar en árboles hash . Para una gran cantidad de mensajes, los árboles hash son potencialmente más eficientes, ya que pueden permitirle verificar la integridad de un mensaje individual sin tener que cargar y combinar todos los hash intermedios $h_i$. También son más eficientes para actualizar, si sus mensajes a veces pueden cambiar. (Dicho esto, si sus mensajes no cambian y sabe que va a querer verificarlos todos de todos modos, una lista hash simple tendrá menos gastos generales que un árbol hash más complejo).

Por supuesto, también podría simplemente codificar todo el mensaje combinado $m = (m_0, m_1, \dotsc, m_n)$ a la vez, sin molestarse con listas de hash o árboles. Pero la ventaja de las listas hash o los árboles es que le permiten verificar las partes individuales del mensaje sin cargar ni codificar todo el mensaje combinado.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım