Pregunta

Estoy buscando una biblioteca de cifrado gratuita y actualizada para Delphi 2010 que implemente RSA y AES (Rijndael).

Quiero una biblioteca gratuita porque planeo escribir y publicar algún código de muestra que lo usará.

Se ha publicado una versión Delboi 2010 de TurboPower LockBox en el sitio SongBeamer , que implementa ambas Estos, pero me preocupa que se está poniendo un poco viejo. Por ejemplo, pequeños tamaños de clave RSA y sin nuevas funciones de seguridad durante muchos años.

Actualización: ¿Es incorrecta la percepción de que LockBox está desactualizado o carece de características importantes? ¿Sigue siendo relevante para el desarrollo de la producción? (Particularmente los tamaños de clave RSA)

¿Fue útil?

Solución

El algoritmo RSA no está necesariamente desactualizado, pero el tamaño de la clave es importante. Todavía se utiliza regularmente en todo el lugar. Se debe usar una longitud de clave RSA de 3072 bits si se requiere seguridad más allá 2030. Esto es solo una función de las mejoras en la potencia de cálculo y no una debilidad en el algoritmo.

Estaba mirando el LockBox antes de que SongBeamer comenzara a mantenerlo (Delphi 2007) encontré La RSA es inestable: solo se bloquea o produce resultados erróneos de vez en cuando. Aunque puede haber sido arreglado desde entonces. Si lo va a utilizar, asegúrese de que admita las longitudes de clave que necesita y luego cree algunas pruebas automatizadas con entradas y salidas conocidas. Asegúrate de que funcione estable. Si lo hace, entonces utilícelo por todos los medios.

También puede utilizar la API de Microsoft Crypto para realizar el cifrado RSA. Escribí un contenedor para Delphi 2007 , pero no lo he actualizado para Unicode (lo sé , me avergüenza). Alguien más podría actualizarlo para que funcione con Unicode fácilmente.

Otra opción sería utilizar las funciones de criptografía de .NET Framework a través de la interoperabilidad COM o algo así.

Otros consejos

TurboPower LockBox 3.1.0 ahora se lanza. Soporta:

  • Delphi 2007 y Delphi 2010
  • Unicodestrings para Delphi 2010
  • cifrados AES, DES, 3DES, Blowfish y Twofish
  • Una larga lista de modos de encadenamiento de bloques
  • hashes MD5 y SHA1
  • cifrado, descifrado, firma y verificación RSA
  • Llaves RSA de longitud variable: casi sin restricciones en el rango.
  • código de prueba de la unidad D
  • salado automático
  • Manejo adecuado de las IV (a diferencia de DCPcrypt)
  • Caja blanca, libre y de código abierto
  • código fuente nativo 100% visible (sin DLL)

http://sourceforge.net/projects/tplockbox/ y http://lockbox.seanbdurkin.id.au/

Hola Bruce, uso esta biblioteca desde Delphi 5,

Compedium de encriptación Delphi Parte I v.5.2

  • Reescritura completa de la versión anterior del 3 de diciembre, actualización de la versión 5.1 de diciembre (lanzada en 2006)
  • Muchos cifrados (Blowfish, Twofish, 3DES, Rijndael ...)
  • Many Hashs (MD2 / 4/5, SHA1-512, RipeMD128-320 ...)
  • Funciones de suma de comprobación (CRC32, CRC16 ...)
  • Funciones de conversión de texto (MIME Base 64, XX / UU Coding ...)
  • Funciones seguras de números aleatorios
  • con cifrado de cifrado en modos (CTS / CBC / CFB / OFB / ECB ...)
  • Orientado a objetos completo y fácil
  • Núcleo rápido y altamente optimizado
  • Admite ANSI y Unicode en D2009 (y más abajo usando WideStrings) ...

Es Freeeware y con el código Sorce, desafortunadamente no implementa RSA.

Parece que El trabajo de D2010 está hecho :

TurboPower LockBox . Cifrado de datos . 04 de septiembre de 2009 . Descargar

Estado: Debería estar funcionando bien.
Esta biblioteca se ha ampliado para que admita el cifrado de Ansi y UnicodeStrings.
09/04/2009
    * Delphi 2010 paquetes
    * debe compilarse sin sugerencias y advertencias

No sé exactamente a qué te refieres con " mucho tiempo en el diente " (¿viejo?), pero me gustaría ir a Lockbox, porque proporciona todo lo que necesitas. Excepto por la actualización de 2009, los últimos cambios oficiales se hicieron en 2003. Pero bueno, si funciona, funciona.

Para el código de ejemplo, LockBox puede estar bien, pero ya no lo usaría en producción. La encriptación se hace larga en el diente. Los algoritmos se vuelven viejos. Las fallas no descubiertas anteriormente, las técnicas mejoradas de criptoanálisis, los avances matemáticos, el aumento de la potencia del procesador hacen que los algoritmos y el tamaño de las claves ya no sean lo suficientemente seguros. 3DES, MD5, SHA-1 ya no se consideran suficientes. Los ataques contra AES se han publicado recientemente ( http://eprint.iacr.org/2009/374). El tamaño mínimo de la clave RSA recomendada ahora es de 1024 bits, mientras que las claves 2048 y 3072 se recomiendan si los datos deben protegerse durante años. Lockbox ofrece solo claves de 1024 bits o menos . También se debe seleccionar el modo de cifrado de bloque derecho. Y la clase LockBox TLbRijndael (AES) usa de forma predeterminada ECB, que tiene fallas conocidas, y no ofrece nada más que CBC. Debido a la importancia de la seguridad electrónica adquirida en estos años, y las investigaciones consiguientes realizadas por personas buenas y malas, una biblioteca de siete años es realmente antigua: simplemente compilarla y agregar soporte para las cadenas UTF-16 no es suficiente. Tenga en cuenta que la seguridad falsa es peor que ninguna seguridad en absoluto. Si se le dice a un administrador del sistema " no tenemos ninguna seguridad en su lugar " él mismo trabajará para implementar la seguridad (por ejemplo, IPSec, VPN o similares). Si ha dicho "sí", tenemos RSA y AES! & Quot; se sentirá bien, incluso si su implementación de AES y RSA no está actualizada y ya no es segura.

No lo he probado en D2010, pero DCPcrypt supuestamente funciona en D2009.

Fundamentals Cody Library tiene implementaciones para ambos AES y cifrado RSA. Sin embargo, no he usado la biblioteca, así que no puedo comentar sobre su calidad.

Parece que hay muchas implementaciones gratuitas de Delphi AES. Siéntase libre de agregar sus favoritos aquí .

Parece que no hay tantas implementaciones gratuitas de RSA, y muy pocas bibliotecas que ofrecen ambas.

Parece que LockBox sigue siendo una opción bastante razonable. Sobre todo porque no necesito cifrado, lo que tomará literalmente años descifrarlo.

Creo que usar la API de cifrado de Microsoft directamente podría ser la opción más práctica.

Daniele Teti ha lanzado una colección de filtros DataSnap para Delphi 2010, que incluye hash, cifrado y compresión. Menciona que también puede implementar cifrados asimétricos en el futuro.

http://www.danieleteti.it/

Este es un código abierto, así que siéntase libre de contribuir.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top