Cómo usar claves secretas para transferir dinero en Polygon Network
En el entorno de red actual, para la red Ethereum, para garantizar que los datos en comunicación entre dos nodos sean seguros, generalmente es necesario utilizar una combinación de algoritmos de clave pública (algoritmos de cifrado asimétrico). realice el intercambio de claves, luego use un algoritmo de cifrado simétrico para cifrar los datos, use una función hash unidireccional para generar una huella digital de datos, use un algoritmo de firma para generar una firma de datos y luego envíe los datos cifrados, la huella digital de datos y los datos firma a la otra parte juntos.
Este es un método común de intercambio de claves, pero existe un problema inevitable: se necesita un tercero para garantizar la exactitud de la clave pública y se requiere un tercero confiable antes de que las dos partes comunicarse.Proporcione la clave pública de la otra parte.
Este artículo presenta un método de intercambio de claves que no utiliza algoritmos de clave pública pero utiliza prueba de carga de trabajo. Todo el proceso no requiere la participación de un tercero.
II. Esquema
Supongamos que las partes de la comunicación son A y B. En este método, x es un número aleatorio, y es la clave de cifrado de n bits que se intercambiará y n es un valor fijo. El proceso se describe a continuación:
1.A usa un algoritmo de números aleatorios para generar x, genera una clave y de n bits y usa y para cifrar simétricamente x para generar texto cifrado Sx.
2.A Repita los pasos 1 m veces para generar m Sx. Dado que x se genera aleatoriamente, los m x, y, Sx son todos diferentes.
3.A envía m x, Sx a B.
4.B Seleccione aleatoriamente un par de x, Sx de m x, y, Sx y luego realice un crack exhaustivo para crackear y.
5. En este momento, tanto A como B conocen la clave y.
La viabilidad de este método depende principalmente de la complejidad de una única grieta exhaustiva y de la cantidad de información m. Una complejidad demasiado alta resultará en dedicar demasiado tiempo a la prueba de trabajo, mientras que muy poca información reducirá la dificultad de descifrar.
Por supuesto, el método anterior también tiene otros problemas, por ejemplo, si los datos se interceptan en los pasos 3 y 5, aunque es temporalmente imposible descifrar las xey específicas hasta el paso 3. Es posible descifrarlo en el paso 5. Descifrar x, y. Si los datos solo se cifran con y en comunicaciones posteriores, también habrá problemas con la integridad de los datos y la protección contra el repudio. Hay una situación en la que este enfoque es ideal. Es decir, cuando ambas partes no conocen la clave pública de la otra parte y no quieren depender de un tercero, pueden confiar en este método para el intercambio seguro de claves y la distribución de claves públicas, y para lograr una comunicación segura. Por lo tanto, continuamos mejorando el plan:
3. Plan de optimización
Los requisitos previos del plan anterior permanecen sin cambios, y A y B generan cada uno sus propios pares de claves públicas y privadas.
1. Los pasos 1 y 2 anteriores permanecen sin cambios.
2. A envía m x, Sx, Pxa a B, donde Pxa es el resultado de usar y para cifrar Pa, y Pa es la clave pública de A.
3. B elige aleatoriamente descifrar y por fuerza bruta, y luego descifra Pxa en función de y, y ahora también conoce Pa.
4. B usa Pa para cifrar x, y usa y para cifrar Pb, y luego lo envía a A.
5. A recibe x descifrado usando la clave privada, luego conoce y y usa y para conocer Pb. En este punto, tanto A como B conocen y y la clave pública de la otra parte.
Desde una perspectiva de seguridad, incluso si el paquete de datos es interceptado en los pasos 2 y 4, el atacante no puede descifrar la y requerida de m x y Sx, ni puede conocer las claves públicas de ambas partes.
Esta solución de optimización también resuelve otro problema, a saber, la distribución de claves públicas. El método de distribución de clave pública comúnmente utilizado ahora es almacenar la clave pública en una base de datos centralizada y luego obtener la clave pública correspondiente de la base de datos. Sin embargo, dado que el usuario no sabe de antemano con quién necesita comunicarse, es necesario. asegúrese de que la computadora del usuario esté conectada al servidor de base de datos conectado.
Este enfoque no requiere una base de datos central para respaldar la distribución, solo que las partes que se comunican sean conscientes de la existencia de cada una.