2009-10-16 10 views
0

Je commence juste avec Visual Basic .NET et je suis actuellement bloqué sur le problème suivant: comment puis-je crypter/décrypter un fichier avec un cryptage asymétrique?Crypter un fichier avec RSA dans Visual Basic .NET

Essentiellement, je suis en train de comprendre comment je peux écrire le pseudo-code suivant dans VB:

Function EncryptFile(path_to_file_to_encrypt, public_key) 
    file = ReadFile(path_to_file_to_encrypt) 
    encrypted_file = Encrypt(file, public_key) 
    SaveToDisk(encrypted_file, "C:\Encrypted\encryptedfile.xxx") 
End Function 

Function DecryptFile(path_to_encrypted_file, private_key) 
    encrypted_file = ReadFile(path_to_encrypted_file) 
    file = Decrypt(file, private_key) 
    SaveToDisk(file, "C:\Decrypted\file.xxx") 
End Function 

Le fichier je cryptage/décryptage est un fichier de base de données Access (par exemple binaire), si cela fait toute différence. Je comprends qu'il y a des conteneurs pour les clés privées, mais il me semble que le MSDN tutorial me suffit pour comprendre cela. Je suppose que je peux coder en dur la clé publique dans mon code (ça ne changera pas).

Toute aide serait appréciée!

+0

Ce tutoriel semble utile: http://etutorials.org/Programming/Programming+.net+security/Part+III+.NET+Cryptography/Chapter+15.+Asymmetric+Encryption/15.2+Programming+Asymmetrical+Encryption/ –

Répondre

1

Généralement, une «clé de chiffrement de clé» RSA est utilisée pour chiffrer une «clé de chiffrement de contenu» pour un algorithme symétrique. Cette clé de chiffrement de contenu est utilisée pour chiffrer le fichier.

Des protocoles tels que SSL, S/MIME et PGP peuvent utiliser cette approche (parfois appelée transport de clé). La cryptographie asymétrique est très, très lente par rapport aux algorithmes symétriques.

Quelque chose comme Chilkat's bibliothèque S/MIME pour VB.NET pourrait gérer cette tâche.

+0

Ok, ça pourrait le faire. Plus précisément, ce que je veux faire est de crypter un fichier de base de données avec la clé publique et l'envoyer par courrier électronique à la personne avec la clé privée. Avec le transport de clés, je pouvais chiffrer de manière symétrique le fichier de base de données, crypter asymétriquement la «clé de chiffrement de contenu» et envoyer par courrier électronique la clé symétrique cryptée et la base de données chiffrée. Droite? En supposant que la clé symétrique était forte, serait-elle aussi sûre que de tout faire asymétriquement? –

+0

Oui, c'est exactement la bonne approche; et, bien sûr, S/MIME le fait comme vous l'esquissez. En prime, sachez que le destinataire de l'e-mail exécute probablement déjà un client de messagerie qui prend en charge S/MIME (comme Outlook ou Thunderbird). Tout ce qu'ils doivent faire est d'installer une paire de clés dans leur client (charger un fichier p12 ou pfx). Enfin, il n'y a pas de compromis sur la sécurité ici. C'est un protocole conçu, étudié, revu et implémenté par des cryptographes. – erickson

Questions connexes