Desidero sapere che le chiavi simmetriche possono essere utilizzate per firmare un messaggio? Possiamo encrpyt utilizzando la chiave segreta condivisa. Inoltre, quando viene utilizzata la chiave simmetrica per la firma, quale API può essere utilizzata in JAVA per caricare la chiave e firmare il messaggio?Utilizzo della chiave simmetrica (AES -128) per firmare e verificare un messaggio
se ho usato Signature da java.security, ha un api initSign ma che prende la chiave privata dalla coppia di chiavi pubblica/privata come argomento per firmare il messaggio. Qui la chiave è la chiave simmetrica.
Eventuali suggerimenti?
CBC-MAC è danneggiato per messaggi di lunghezza variabile. Un CMAC è un CBC-MAC fatto bene. – jww
Scusa ma non sono ancora chiaro. cosa determina la dimensione della chiave da utilizzare per HMAC? Capisco che posso usare HMAC su CMAC. Ma la chiave che ho è aes 128. Può essere usato? per esempio: chiave secretkey = new (chiave, "AES") SecretKeySpec – user839917
Preferibilmente, si dovrebbe usare una chiave diversa (indipendente) per MAC e la crittografia, anche se è molto probabile HMAC diverso abbastanza in modo da utilizzare lo stesso tasto non darà problemi. È possibile utilizzare qualsiasi lunghezza della chiave desiderata per HMAC (fino alla lunghezza del blocco delle funzioni hash) (anche se non so se l'implementazione lo supporta), verrà semplicemente riempito con zero fino alla lunghezza del blocco della funzione hash. Le chiavi più grandi offrono maggiore sicurezza, sebbene non migliori le dimensioni dell'output delle funzioni hash (= dimensione MAC). –