Red de conocimiento informático - Material del sitio web - Criptosistema Dashu

Criptosistema Dashu

En el campo de la tecnología de seguridad de redes, la implementación de software de varios algoritmos de cifrado y descifrado siempre ha tenido el mismo problema, es decir, cómo implementar una gran cantidad de operaciones en una PC común. Como todos sabemos, las aplicaciones informáticas comunes en nuestra vida diaria, que son lo que normalmente llamamos computadoras personales, la longitud de palabra interna de la mayoría de las PC sigue siendo de 32 bits, y sólo recientemente ha comenzado a pasar a longitudes de palabra de 64 bits, pero en Para lograr un cierto nivel de seguridad, en varios algoritmos de cifrado y descifrado, las operaciones matemáticas como suma, resta, multiplicación, división e inversión modular deben realizarse con una longitud de palabra de 128 bits, 512 bits o 1024 bits. . Las operaciones matemáticas como el módulo y la inversión son lo que llamamos operaciones grandes. Bajo tal premisa, cómo implementar de manera rápida y eficiente una gran cantidad de operaciones en una PC se ha convertido naturalmente en la cuestión más básica e importante al implementar algoritmos de cifrado y descifrado en una PC.

Para resolver el problema de los cálculos a gran escala, los desarrolladores de software e investigadores de todo el mundo han llevado a cabo mucha investigación y práctica. En los últimos años, cada vez más desarrolladores han comenzado a prestar atención al papel de la ingeniería de software. Para reducir la duplicación del trabajo, mejorar la calidad del software y la reutilización del código, han surgido muchas bibliotecas de operaciones excelentes. La siguiente es una breve introducción a varias excelentes bibliotecas de números grandes:

GMP: La biblioteca de números grandes GMP es parte del proyecto GNU y nació en 1991. Como biblioteca aritmética de enteros grandes de precisión arbitraria, incluye varias operaciones aritméticas básicas en enteros con signo, números racionales y números de punto flotante de precisión arbitraria. Es una biblioteca de lenguaje C, pero se proporciona la clase de paquete oficial de C. Sus principales direcciones de aplicación son criptografía, seguridad de red, sistemas algebraicos, informática, etc. La velocidad de operación de la biblioteca GMP es muy rápida. Su sitio web oficial afirma ser la biblioteca de números grandes más rápida del planeta. Sin embargo, la biblioteca GMP solo proporciona operaciones matemáticas y no tiene funciones avanzadas relacionadas con la criptografía.

Miracl: La biblioteca Miracl es una biblioteca de gran número desarrollada por Shamus Software Co., Ltd. Tiene licencia gratuita para investigación científica educativa o uso no comercial. Es una biblioteca de lenguaje C con varias clases contenedoras de C simples. Desde el punto de vista funcional, no solo proporciona varias operaciones matemáticas en fracciones y enteros grandes de alta precisión, sino que también proporciona muchas operaciones subyacentes en muchos algoritmos de cifrado en el módulo de funciones, como SHA, AES, DSA, etc. Lo más especial es que también proporciona muchos sistemas de cifrado de curva elíptica en los módulos funcionales subyacentes. La biblioteca Miracl también es muy rápida porque su implementación interna utiliza una gran cantidad de código de nivel ensamblador.

Crypto: La biblioteca Crypto es un proyecto de código abierto y de uso gratuito. Debido a que es una biblioteca implementada en C puro, es muy conveniente de aplicar. La estructura de la biblioteca es clara, fácil de usar y la documentación también es muy completa. La biblioteca Crypto proporciona implementaciones de muchos algoritmos de cifrado.

OpenSSL: OpenSSL es una implementación de código abierto de SSL y paquetes de software de cifrado relacionados, iniciada y escrita por Eric Yang y otros en Canadá. Admite resúmenes de mensajes, cifrado y descifrado de archivos, certificados digitales, firmas digitales y números aleatorios. Su objetivo principal no es una biblioteca de grandes números, sino la implementación y aplicación del protocolo SSL, pero también tiene algunas funciones sobre números enteros grandes y también se basa en el lenguaje C.