elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Librerias de Cifrado Simetrico y Asimetrico en C/C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Librerias de Cifrado Simetrico y Asimetrico en C/C++  (Leído 2,441 veces)
AlbertoBSD
Programador y
Colaborador
***
Desconectado Desconectado

Mensajes: 3.518


🏴 Libertad!!!!!


Ver Perfil WWW
Librerias de Cifrado Simetrico y Asimetrico en C/C++
« en: 22 Septiembre 2016, 16:52 »

En construcción
Libcrypto
Documentación: No esta muy ordenada
https://wiki.openssl.org/index.php/Libcrypto_API


Libgcrypt
Documentación: Excelente
Algoritmos: La mayoria de los Simetricos y siguen desarrollando los Asimetricos

Citar
Libgcrypt is a general purpose cryptographic library based on the code from GnuPG. It provides functions for all cryptograhic building blocks: symmetric ciphers (AES, DES, Blowfish, CAST5, Twofish, SEED, Camellia, Arcfour), hash algorithms (MD4, MD5, RIPE-MD160, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, TIGER-192, Whirlpool), MACs (HMAC for all hash algorithms), public key algorithms (RSA, Elgamal, DSA, ECDSA), large integer functions, random numbers and a lot of supporting functions.

Libgcrypt works on most POSIX systems and many pre-POSIX systems. It can also be built using a cross-compiler system for Microsoft Windows.
https://www.gnu.org/software/libgcrypt/
https://gnupg.org/download/index.html#libgcrypt




Abro el tema por que me he encontrado con el problema de usar una librería de cifrado en Windows, el problema que el proyecto que estoy haciendo en C en FreeBSD lo hice con libgcrypt pero esta NO se puede portar tan fácilmente a windows :P :P Y cada que alguien preguntaba por alguna librería asi yo siempre recomendaba libgcrypt (Mas que nada la recomendaba por completa suite de algoritmos y excelente documentación).

Realmente no conozco muchas librerias de este tipo ya que siempre trabaje con libgcrypt y me parecia muy completa,
¿podrian comentar algunas mas que usen o conozcan y que tambien funcionen con windows y no tengan tantas dependencias?

Saludos!


En línea

Donaciones 15FZZ2fLGR1NydCKHJMw76UZ9SqvFRkxqE
Poyoncio

Desconectado Desconectado

Mensajes: 220



Ver Perfil WWW
Re: Librerias de Cifrado Simetrico y Asimetrico en C/C++
« Respuesta #1 en: 22 Septiembre 2016, 20:06 »

He estado hace un tiempo en el mismo problema que tu, el problema de la mayoria de apis y pequeños proyectos desarrollados orientados a criptografia, es que si no conoces como funcionan muy bien no sabes por donde empezar, en python es tan sencillo como aes_encrypt(clave, mensaje), mientras que en c++ de 20 lineas para abajo necesitas. Estaria bien crear una cabecera que hiciera algo parecido como en el ejemplo de python.

Yo no consegui resolverlo ya que casi todas las opciones eran de tipo openssl y librerias de esas que tienen dependencias, mi idea era un .h portable con el codigo, es decir dentro del exe.


Por si te sirve de algo, encontre esta api de Rijandel, espero que te sirva:
 http://ftp://ftp.zedz.net/pub/security/cryptography/algorithms/aes/aes-c++-sstefanek/
EDITO: El link esta caido voy a intentar encontrarlo otra vez
EDITO2: Tambien tenia esta: http://www.codeproject.com/Articles/57478/A-Fast-and-Easy-to-Use-AES-Library


« Última modificación: 22 Septiembre 2016, 20:13 por Poyoncio » En línea

Curso de ensamblador desde cero
AlbertoBSD
Programador y
Colaborador
***
Desconectado Desconectado

Mensajes: 3.518


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Librerias de Cifrado Simetrico y Asimetrico en C/C++
« Respuesta #2 en: 22 Septiembre 2016, 23:29 »

En mi caso solo fue por que la librería que usaba no estaba totalmente portada para windows.

En general es preferible (Criptograficamente) establecer todos los parámetros para el cifrado aunque se trate de cifrado simétrico (AES) existen muchas variedades y cosas que definir, como el IV (Vector de Inizialisacion) tambien el KEY (Tu clave) + el tipo de cifrado (AES128, AES256) y modo de cifrado (ECB, CFB, CBC,CCM,GCM).

No todos son compatibles entre si, y algunas implementaciones no son tan seguras como otras.

Yo prefiero escribir 20 lineas a una sola. O mejor aun crear mi propia función acorde a mis necesidades y llamarla con una sola linea (Que es lo que realizo actualmente), no es tan dificil, tal vez, solo te falta leer un poco mas de criptografia y entender mas o menos los conceptos y con eso no sera tan dificil entender esas 20 lineas.

Ademas mientras es posible personalizar tanto el codigo como deees para que se adapte a cualquier tipo de proyecto.

He visto implementaciones criptograficas INSEGURAS de una sola linea como la que mencionas que no son tan seguras muchas de ellas incluso "Incluyen" el Material para descifrar dentro del mismo mensaje "supuestamente" cifrado.

Ver mas:

https://www.owasp.org/index.php/Top_10_2010-A7-Insecure_Cryptographic_Storage
http://www.veracode.com/blog/2012/06/insecure-cryptographic-storage-explained
Citar
Insecure Cryptographic Storage is a common vulnerability that occurs when sensitive data is not stored securely. Protecting sensitive data by encrypting it should be a key step in a Secure Software Development Lifecycle

Saludos!
En línea

Donaciones 15FZZ2fLGR1NydCKHJMw76UZ9SqvFRkxqE
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines