Con .NET Framework 4.7 l'Elliptic Curve Cryptography (ECC) è stato notevolmente migliorato:
The .NET Framework 4.7 has enhanced the functionality available with Elliptic Curve Cryptography (ECC). ImportParameters(ECParameters) methods were added to the ECDsa and ECDiffieHellman classes to allow for an object to represent an already-established key. An ExportParameters(bool) method was also added for exporting the key using explicit curve parameters.
The .NET Framework 4.7 also adds support for additional curves (including the Brainpool curve suite), and has added predefined definitions for ease-of-creation via the new ECDsa.Create(ECCurve) and ECDiffieHellman.Create(ECCurve) factory methods.
Sono uno sviluppatore .NET che desidera utilizzare ECC con un HSM, quindi emergono alcune domande.
Assunzione
- Non è consentito utilizzare la stessa istanza di un EC per la firma e la crittografia
(Ho letto questa affermazione alcune volte, sono uno sviluppatore, non uno specialista di crittografia, quindi purtroppo manca l'esperienza per comprenderlo nella sua completezza)
Problema
- Alice desidera inviare a Bob un messaggio firmato e crittografato
- Alice ha Bob
Public Signature Key
(brainpoolP320r1) - Bob ha Alices
Public Signature Key
(brainpoolP320r1) - Alice crea un
'throw-away' Key
solo per la crittografia ma ricava un segreto condiviso con BobsPublic Signature Key
Non è un riutilizzo proibito delle chiavi? - Alice ha firmato i dati con
Signature Key
prima con la trasmissione
Domanda
- La derivazione di un segreto condiviso tra un EC per la firma e un
'throw-away' Key
una violazione dell'assunzione di non utilizzare una chiave per la firma e la crittografia? - Come è possibile aggiungere negabilità plausibile ? (riguardo all'identificazione di mittente e destinatario)
Aggiornamento
Con il feedback che hai fornito, userei questo formato di messaggio per archiviare la negabilità e l'autenticazione plausibili.