Algoritmo Serpente che implementa Cipher

1

Come devo cambiare l'implementazione standard dell'algoritmo Serpent che posso usare con javax.crypto.CipherInputStream o javax.crypto.CipherOutputStream?

Devo implementare / estendere la classe Cipher e quando lo faccio, cosa devo cambiare?

L'implementazione originale dell'algoritmo Serpent è qui link

Esiste un'implementazione dell'algoritmo del serpente che implementa il cifrario? Ho trovato l'implementazione Java dell'algoritmo nella pagina del suo creatore. Il problema in questo è: non posso usarlo con javax.crypto.CipherInputStream o javax.crypto.CipherOutputStream.

Cerco di utilizzare ObjectOutputStream per scrivere un file di configurazione, ma vorrei crittografarlo con l'algoritmo del serpente. Lo stesso è con la lettura di questo file di configurazione.

Non voglio usare API come BouncyCastle e flexiprovider perché creano un boilerplate pesante che non mi serve.

Qual è la procedura migliore per utilizzare un Algoritmo (finale e testato) che non estenda / implementa Cipher e dovrebbe essere usato in javax.crypto.CipherXxxStream?

    
posta Serverfrog 07.05.2014 - 22:26
fonte

1 risposta

1

Ecco una panoramica di come implementare un codice per Java: Scrivi le tue estensioni JCA - una cifra completa

I punti chiave dell'articolo sono:

Create key classes

We will create a Caesar cipher implementation. You could also do ROT13 with it. As ciphers are about encryption/decryption we need some keys. Our key class will be very simple as we just need to store an offset for shifting our letters later on.

Start by creating a new Java Project named com.example.jce.cipher.

Implement the cipher

Ciphers are implemented extending CipherSpi (as all JCA extensions extend a WhateverSpi class).

Create a JCE provider

As for the digest, we need to usa a provider to register our digest in the JRE.

Using our provider

Create a new Java project com.example.jce.cipher.consumer. Create a subfolder libs and store your signed JAR file there. Then add this JAR to the Java Build Path.

Now everything is in place to use our cipher.

L'articolo menziona anche che devi avere un certificato da Oracle per firmare il tuo codice o il processo non può essere completato.

    
risposta data 08.05.2014 - 02:19
fonte

Leggi altre domande sui tag