The real question to ask is "what is your threat model?" What sort of
attack are you trying to prevent? Are you creating a digital lock on a
diary to keep it safe from your sister's prying eyes, or are you
Edward Snowden, on the run from several three letter agencies with
billions of dollars of funding? AES-256 is currently labeled as
sufficient to use in the US government for the transmission of TOP
SECRET/SCI information. That's pretty much the highest classification
level they could clear it for, so the US government is pretty darn
confident that nobody can break AES-256 on the timescales required to
protect our nation's greatest secrets. (Well, almost. What it really
says is that they are confident that nobody outside of the US
government can break AES-256. What you believe that that says about
whether the US government, themselves, can break it depends on your
threat model... and whether you engage in discussions of whether
heavy-duty tin foil makes better hats or not)
Riferimento
La crittografia della chiave AES è sufficientemente sicura per mantenere i dati al sicuro. A mio parere, se la chiave master M è compromessa, può portare alla decodifica di tutta la chiave X. Se si utilizza una crittografia a chiave pubblica per crittografare la chiave X, solo una parte dei dati sarebbe compromessa. Supponiamo, ad esempio, che ci siano due utenti U1 e U2, e che le chiavi pubbliche siano PubU1 e PubU2, le chiavi private siano PriU1 e PriU2.
Quando U1 vuole condividere le sue credenziali con U2, l'applicazione usa PubU2 per crittografare la chiave X, in modo che quando U2 vuole accedere ai dati, prima decodifica usando PriU2 e poi usa la chiave X per decrittografare i dati.