2

code https://play.golang.org/p/CUEqjsJq5cComment crypter un gros fichier avec RSA?

Erreur:

panic: crypto/rsa: message too long for RSA public key size 

goroutine 1 [running]: 
panic(0x4a6d80, 0xc420010420) 
    /usr/local/go/src/runtime/panic.go:500 +0x1a1 
main.main() 
    /tmp/sample.go:28 +0xfa 

Taille du fichier 811 octets (pour le test Crypter fichier auto source). Je veux crypter des fichiers plus gros, 1..500 mb. Puis-je le faire avec RSA ou utiliser d'autres méthodes?

+2

RSA ne convient pas au chiffrement de fichiers volumineux. Recherche le sur Google. La pratique générale est de générer une clé AES qui est petite et vous pouvez encoder la clé AES avec la clé RSA, et vous continuez à crypter le fichier volumineux avec la clé AES (cryptage symétrique). – icza

+0

En plus du commentaire de @ icza, le paquet golang rsa a une note sur ceci: https://golang.org/src/crypto/rsa/rsa.go#L335 – Momer

+0

Mais il n'est pas nécessaire de chiffrer la clé symétrique à moins que RSA une paire de clés publique/privée est requise. Quel est le cas iuse pour une paire de clés publique/privée – zaph

Répondre

3

RSA ne peut chiffrer que des données inférieures à la longueur de la clé.

La réponse est de crypter les données avec un algorithme symétrique tel que AES qui est conçu pour crypter les petites et grandes données.

Si une paire de clés publique/privée RSA est requise, chiffrez la clé symétrique (AES) avec RSA. C'est ce que l'on appelle le cryptage hybride et, en substance, c'est le cryptage HTTPS qui crypte les données.

Mais il n'est peut-être pas nécessaire de chiffrer la clé symétrique par RSA à moins qu'une paire de clés publique/privée soit requise. Dans le cas général on utilise juste symétrique (AES) et cette clé. Quel est le cas d'utilisation d'une paire de clés publique/privée?