We all know PGP is old and got a myriad of problems, like key management.
Thus, I'm looking for a generic encryption and signing tool that also available on mobile devices, both Android and iOS.
I know age+minisign is the preferred choice but unfortunately there ain't an mobile app for them.
I know Magic Wormhole is great for P2P data transfer but it's slow and not reliable. I often have corrupted files even the size is small. I would much rather encrypt locally, upload to GDrive, and share it.
I know Signal, WhatsApp and other messaging apps now offers E2EE to exchange many data forms but the political sphere is shifting and given the current trend, they might forced to backdoor the protocol, drop E2EE entirely, or cease operation. Something independent from messaging tool is needed.
I'm not seeking perfect forward secrecy as that wasn't achievable for non conversations use case unless parties manually negotiate a session key.
I don't care the web of trust either. Putting PII on a key server for public viewing doesn't fit today's privacy trend.
Nor anonymity. I'm talking to my family members and friends and I don't find a reason to hide that. The only thing matters is the content.
While it will be great to follow some kind of widely used standards, it is not a requirement.
Gnu Privacy Guard and Pretty Good Privacy aren’t quite the same thing.
Otherwise, AES for encrypting and SHA256 for hashing; you can combine the two to use the SHA256 of an archive as the password for the encrypted version.
But if you want PKI, it’s either GPG or OpenSSL.
[edit] personally I like that I was able to generate a 4096-bit keypair with PGP in 1998 (it took a while) and I can still use it as my master keypair in GPG today.
They don’t have to; that’s all in how you use them. You can set a short expiration rotating root key if you want.
Key management you can’t really avoid; either the key remains private or you have to trust someone to host the public key that multiple people trust. Again, you can set up an expiry cycle.
Personally, what I’ve done is kept a closely held 4096-bit keypair as a master, and then used that to sign my rotating keysets; that way, people can verify that it’s the same master key used to sign all of them, but it’s the short term public key I publish.
So if for some reason it expires before I can re-sign, I can still use the root key to get things working again.
In practice it’s worked for me for 25 years, so I’m happy.
So you have two keys: master and ephemeral key. Both are independent to each other. Mater doesn't expire and ephemeral will have a short period of validity.
You kept the master key secure, and using it to certify the ephemeral key with a expire date?
You still need to publish the master's public key to key server for everyone knows and verify you signed the ephemeral key isn't?
No, they just have to know that the signer hash is the same for each ephemeral key in the chain. If someone required more validation than that, I’d have to share the public key, but in real life that’s never come up.
You have one master key (root). This key have strong connection to your identity. However, you kept this in secret.
You have one or more ephemeral keys (edge). You can dedicate each key for different purposes. You sign these keys with the root key.
If I'm not mistaken, it's essentially the "Web of Trust". How do people trust your edge keys without knowing the root's public key by "the signer hash is the same"? While I can see the certification on your edge key, I can't build a trust path as I don't have your root's public key.
I don't really understand "each ephemeral key in the chain". What chain actually? Chain as in " Web of Trust"? Or as in subkeys?