2

コードhttps://play.golang.org/p/CUEqjsJq5cRSAで大きなファイルを暗号化する方法は?

エラー:

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 

ファイルサイズ(テスト暗号セルフ・ソース・ファイル用)811バイト。私はいくつかのより大きなファイルを暗号化したい、1.50 MB。私はRSAでそれを行うことができますか、または他の方法を使用する必要がありますか?

+2

RSAは大きなファイルの暗号化には適していません。それはGoogleです。一般的な方法は、AESキーを小さくすることです.AESキーをRSAキーでエンコードし、AESキー(対称暗号化)で大ファイルを暗号化します。 – icza

+0

@ iczaのコメントに加えて、golang rsaパッケージには次のような注釈があります。https://golang.org/src/crypto/rsa/rsa.go#L335 – Momer

+0

しかし、対称鍵をRSA暗号化する必要はありません公開鍵/秘密鍵のペアが必要です。公開鍵/秘密鍵ペアのiuseの場合 – zaph

答えて

3

RSAは、キーの長さよりも小さいデータしか暗号化できません。

答えは、大小のデータを暗号化するように設計されたAESのような対称アルゴリズムでデータを暗号化することです。

RSA公開鍵と秘密鍵のペアが必要な場合は、RSAで対称(AES)鍵を暗号化します。これはハイブリッド暗号化と呼ばれ、本質的にHTTPSはデータを暗号化します。

しかし、公開鍵と秘密鍵のペアが必要でない限り、対称鍵をRSAで暗号化する必要はありません。一般的なケースでは、ちょうど対称(AES)とそのキーを使用します。公開鍵/秘密鍵のペアのユースケースは何ですか?

関連する問題