Criptografía moderna en blockchain
1983 - Firma ciega descrita por David Chaum
1997 - HashCash inventado por Adam Back (un ejemplo de sistema de prueba de trabajo)
2001 - Ron Rivest, Adi Shamir y Yael Tauman propusieron firmas en anillo a la comunidad criptográfica
2004: Patrick P. Tsang y Victor K. propusieron utilizar un sistema de firma en anillo para la votación y el efectivo electrónico;
2008 - Libro blanco de Bitcoin publicado por Satoshi Nakamoto
2011 - Análisis del anonimato en el sistema Bitcoin, Fergal Reid y Martin Harrigan
2012 - Dirección de destino Anonimato de Bitcoin (CryptoNote one- dirección horaria).
La computación multipartita segura se originó a partir del problema millonario de Yao Qizhi en 1982. Posteriormente Oded Goldreich mantuvo una discusión más detallada y sistemática.
El problema de Yao Millonario fue planteado por primera vez por el profesor Yao Qizhi, un informático chino y ganador del Premio Turing. El problema se formula de la siguiente manera: dos millonarios, Alice y Bob, quieren saber cuál de ellos es más rico, pero ninguno quiere que el otro sepa información sobre su riqueza. Este problema tiene algunas aplicaciones prácticas: supongamos que Alice quiere comprarle algunos bienes a Bob, pero la cantidad máxima que está dispuesta a pagar es x yuanes; el precio mínimo al que Bob quiere venderlos es y yuanes; Tanto Alice como Bob realmente quieren saber cuál es más grande, x o y. Si x>y, todos pueden empezar a negociar; si z Este esquema se utiliza para comparar dos números para determinar cuál es mayor. Alice conoce un número entero i; Bob conoce un número entero j. Alice y B0b quieren saber si i>=j o j>i, pero ninguno quiere que la otra parte sepa sus propios números. Para simplificar, supongamos que el rango de jey es [1,100. Bob tiene una clave pública Eb y una clave privada Db. La investigación sobre computación multipartidaria segura está dirigida principalmente al problema de cómo calcular de forma segura una función acordada sin un tercero confiable. La computación multipartita segura se utiliza en elecciones electrónicas y votación electrónica. Las subastas electrónicas, el intercambio secreto de oro, las firmas de umbral y otros escenarios juegan un papel importante. El cifrado homomórfico es un problema abierto propuesto por la comunidad criptográfica hace mucho tiempo. Ya en 1978, Ron Rivest, Leonard Adleman y Michael L. Dertouzos propusieron este concepto en el contexto de la banca [RAD78]. Sí, leíste bien, Ron Rivest y Leonard Adleman son R y A respectivamente en el famoso algoritmo RSA. ¿Qué es el cifrado homomórfico? Craig Gentry, quien propuso la primera construcción de cifrado totalmente homomórfico [Gen09], dio la mejor definición intuitiva: una forma de delegar el procesamiento de sus datos, sin ceder el acceso a ellos. ¿Qué significa esto? Los esquemas de cifrado generales se centran en la seguridad del almacenamiento de datos. Es decir, quiero enviar algo cifrado a otras personas o quiero almacenar algo en una computadora u otro servidor. Quiero cifrar los datos antes de enviarlos o almacenarlos. Es imposible que un usuario sin la clave obtenga información sobre los datos originales del resultado cifrado. Sólo los usuarios con la clave pueden descifrar correctamente y obtener el contenido original. Notamos que durante este proceso, los usuarios no pueden realizar ninguna operación con los resultados del cifrado, solo pueden almacenarlos y transmitirlos. Cualquier operación sobre el resultado del cifrado resultará en un descifrado incorrecto o incluso en un error de descifrado. Lo más interesante del esquema de cifrado homomórfico es que se centra en la seguridad del procesamiento de datos. El cifrado homomórfico proporciona una función para procesar datos cifrados. Es decir, otros pueden procesar los datos cifrados, pero el procesamiento no revelará nada del contenido original. Al mismo tiempo, el usuario que tiene la clave descifra los datos procesados y obtiene exactamente el resultado procesado. ¿Un poco abstracto? Tomemos un ejemplo de la vida real. Una usuaria llamada Alice compró una gran pieza de oro y quería que los trabajadores le convirtieran en un collar. Pero los trabajadores pueden robar oro durante el proceso de construcción. Después de todo, incluso un gramo de oro vale mucho dinero... Entonces, ¿existe alguna manera de que los trabajadores procesen las pepitas de oro (delegue el procesamiento de sus datos), pero no las obtengan? ¿Algo de oro (sin dar acceso a él)? Por supuesto que hay una manera, Alice puede hacer esto: Alice guarda el oro en una caja sellada y esta caja está equipada con un guante. Los trabajadores pueden usar este guante para manipular el oro dentro de la caja. Pero la caja estaba cerrada con llave, por lo que los trabajadores no sólo no pudieron llegar a la pepita de oro, sino que tampoco pudieron llegar al oro que se cayó durante el procesamiento. Una vez finalizado el procesamiento. Alice recuperó la caja, abrió la cerradura y sacó el oro. La relación correspondiente aquí es: cuadro: algoritmo de cifrado bloquear en el cuadro: clave de usuario Coloque la pepita de oro en la caja y ciérrela con un candado: cifre los datos usando un esquema de cifrado homomórfico: aplique el. Función homomórfica para procesar directamente el resultado del cifrado bajo la condición de que no se puedan obtener los datos. Desbloquear: descifrar el resultado y obtener directamente el resultado procesado. ¿No se ha mencionado en los últimos años el concepto de computación en la nube? ¡El cifrado homomórfico está casi hecho a medida para la computación en la nube! Consideremos el siguiente escenario: un usuario quiere procesar un dato, pero la potencia informática de su computadora es débil. Este usuario puede utilizar el concepto de computación en la nube y dejar que la nube le ayude a procesar y obtener resultados. Pero si los datos se transfieren directamente a la nube, ¡no se puede garantizar la seguridad! Por lo tanto, puede utilizar cifrado homomórfico y luego dejar que la nube procese los datos cifrados directamente y le devuelva los resultados del procesamiento. De esta manera: el usuario paga al proveedor de servicios en la nube y obtiene los resultados del procesamiento; el proveedor de servicios en la nube gana la tarifa y procesa correctamente los datos sin conocer los datos del usuario. Las firmas agregadas fueron desarrolladas por Boneh et al; La gente propuso mejorar la eficiencia de la firma y la verificación principalmente agregando varias firmas en una sola. Para firmar datos de varios usuarios, las firmas agregadas pueden reducir en gran medida la complejidad de los cálculos de firmas. CL es la firma agregada. Hay dos participantes en el proceso de prueba de conocimiento cero, uno se llama probador y el otro se llama verificador. El demostrador guarda un secreto y quiere que el verificador crea que él guarda el secreto, pero no quiere filtrarlo al verificador. Las dos partes siguen un acuerdo y, a través de una serie de interacciones, el verificador eventualmente llegará a una conclusión clara de si el probador conoce o no el secreto. Para el ejemplo de Bitcoin, si una transacción de transferencia es legal o no, en realidad sólo es necesario probar tres cosas: El dinero enviado pertenece a la persona que envió la transacción La cantidad enviada por el remitente es igual a la cantidad recibida por el receptor El dinero del remitente efectivamente fue destruido Durante todo el proceso de prueba, los mineros en realidad no Preocúpese por la cantidad específica de dinero gastada. Quién es el remitente y quién es el receptor. A los mineros sólo les importa si se conserva el dinero del sistema. zcash utiliza esta idea para implementar transacciones privadas. Las tres propiedades de la prueba de conocimiento cero corresponden a: (1) Integridad. Si tanto el probador como el verificador son honestos, siguen cada paso del proceso de prueba y realizan cálculos correctos, entonces la prueba debe ser exitosa y el verificador debe poder aceptar al probador. (2) Razonabilidad. Nadie puede hacerse pasar por el probador y hacer que esta prueba sea exitosa. (3) Conocimiento cero. Una vez completado el proceso de prueba, el verificador solo obtiene la información de que "el probador posee este conocimiento", pero no obtiene ninguna información sobre el conocimiento en sí. Solo hay miembros del anillo, no hay administradores y no se requiere cooperación entre los miembros del anillo. El firmante puede firmar de forma independiente utilizando su propia clave privada y las claves públicas de otros miembros del conjunto, sin necesidad. para otros. Con ayuda, es posible que otros miembros del grupo no sepan que están incluidos. Las firmas en anillo se pueden utilizar como una forma de filtrar secretos; por ejemplo, una firma en anillo se puede utilizar para proporcionar una firma anónima de un "alto funcionario de la Casa Blanca" sin revelar qué funcionario firmó el mensaje. Las firmas en anillo son adecuadas para esta aplicación porque el anonimato de una firma en anillo no se puede revocar y porque el grupo utilizado para la firma en anillo se puede crear sobre la marcha. 1) Generación de claves. Genere un par de claves (clave pública PKi, clave privada SKi) para cada miembro del anillo 2) firma. El firmante utiliza su propia clave privada y las claves públicas de cualquier n miembro del anillo para generar una firma para el mensaje m 3) Verificación de firma. El firmante verifica si la firma está firmada por un miembro del anillo en función de la firma del anillo y el mensaje m. Si es válido, recíbelo; si no es válido, deséchalo. Proceso general de firma grupal La firma ciega (firma ciega) es un método de firma digital antes de que se firme el contenido del mensaje, para el firmante dice que el contenido del mensaje es invisible. En 1982, David Chaum propuso por primera vez el concepto de firma ciega. Debido a su ceguera, la firma ciega puede proteger eficazmente el contenido específico del mensaje firmado, por lo que se utiliza ampliamente en campos como el comercio electrónico y las elecciones electrónicas. Ejemplo de analogía: Firmar un documento es meter un trozo de papel carbón en el sobre. Cuando el firmante firma el sobre, su firma queda firmada en el documento a través del papel carbón. La llamada firma ciega consiste en poner primero el documento oculto en un sobre, y el proceso de eliminación del factor ciego consiste en abrir el sobre. Cuando el documento está en un sobre, nadie puede leerlo. él. La firma de un documento se realiza colocando un trozo de papel carbón en el sobre. Cuando el firmante firma el sobre, su firma se transfiere al documento a través del papel carbón. En términos generales, una buena firma ciega debe tener las siguientes propiedades: Imperdible. Nadie puede generar una firma ciega válida a su nombre excepto el propio firmante. Esta es la propiedad más básica. No repudio. Una vez que un firmante firma un mensaje, no puede negar su firma en el mensaje. Ceguera. Aunque el firmante firma un mensaje, no puede obtener el contenido específico del mensaje. Irrastreabilidad. Una vez que la firma de un mensaje se hace pública, el firmante no puede estar seguro de cuándo firmó el mensaje. Las firmas ciegas que cumplen las propiedades anteriores se consideran seguras. Estas cuatro propiedades no son solo los estándares que debemos seguir al diseñar firmas ciegas, sino también la base para juzgar el desempeño de las firmas ciegas. Además, la operatividad y eficiencia de implementación de la solución también son factores importantes que debemos considerar a la hora de diseñar firmas ciegas. La operatividad y velocidad de implementación de una firma ciega dependen de los siguientes aspectos: 1. La longitud de la clave 2. La longitud de la firma ciega 3, algoritmo de firma ciega y algoritmo de verificación. Pasos específicos de la firma ciega 1. El destinatario primero transforma ciegamente los datos a firmar y envía los datos ciegos transformados al firmante. 2. Después de ser firmado por el firmante, se enviará al destinatario. 3. El receptor realiza una transformación ciega en la firma y el resultado es la firma ciega del firmante de los datos originales. 4. Esto satisface la condición ①. Para satisfacer la condición ②, el firmante no debe poder asociar la firma ciega con los datos ciegos cuando los vea posteriormente. Esto generalmente se logra confiando en algún tipo de protocolo.