I want to encrypt 1000s of old files on old hard drives before uploading them to the cloud. I'm planning to use AES-GCM with only one or a few keys. (I'm using Apple's CryptoKit library which provides this algorithm and a few others.) It would be convenient to encrypt and store the files individually, so I could download and decrypt them individually. Is this bad practice? I'm wondering if having many small examples of ciphertext could give an attacker an advantage.
A bit of background on my goals: I travel a lot and work with a laptop. Where some people would use an external drive, I want to use the cloud because 1) I don't want to be carrying around external drives, and 2) I want online storage in case of theft or damage to my devices.
I said "one or a few keys" because I don't want to store (in Keychain) or remember tons of keys. But if there is another way to generate multiple keys from a password or master key - appropriate to this situation - then I'd like to know about that.
I should break this into two sub-questions about two similar situations:
Situation 1: Lots of individual files, but no names or directory structures visible.
So an attacker sees a drive full of stuff like:
file0000001.enc 20 KB
file0000002.enc 123 KB
file0000003.enc 600 bytes
file0000004.enc 1.1MB
...
Situation 2: The directory structure, or maybe even file names, are preserved. So if something standard like an OS config directory were encrypted, the attacker would know some or all of the plaintext for some example files.
/personal-files/foo.txt 500K
...
/etc/http/httpd.conf 21K -- a common file, could guess some or all of the plaintext
...
So, are either of these a problem? Or are they safe with AES-GCM (or a similar recommended algorithm)?