Generieren 128-bit-Schlüssel mit keytool
Gibt es eine Möglichkeit zum generieren einer 128-bit-Schlüsselpaar-geeignet für die Verschlüsselung mit Sonne keytool-Programm? Es scheint, dass die verfügbaren algorithmen in http://java.sun.com/javase/6/docs/technotes/guides/security/StandardNames.html#KeyPairGenerator sind entweder nicht unterstützt oder nicht zulassen Schlüssel kürzer als 512 bit.
Das Schlüsselpaar wird mit dem ff. code-snippet:
Security.addProvider(new BouncyCastleProvider());
KeyStore keyStore = KeyStore.getInstance("PKCS12");
FileInputStream keyStoreSource = new FileInputStream("keystore");
try {
keyStore.load(keyStoreSource, "password".toCharArray());
} finally {
keyStoreSource.close();
}
String alias = (String) keyStore.aliases().nextElement();
PrivateKey privateKey = (PrivateKey) keyStore.getKey(alias, "password".toCharArray());
X509Certificate certificate = (X509Certificate) keyStore.getCertificate(alias);
CMSEnvelopedDataStreamGenerator generator = new CMSEnvelopedDataStreamGenerator();
generator.addKeyTransRecipient(certificate);
OutputStream output2 = generator.open(output, CMSEnvelopedDataGenerator.AES128_CBC, BouncyCastleProvider.PROVIDER_NAME);
try {
IOUtils.copy(input, output2);
} finally {
output2.close();
output.close();
}
wo der Ausgang ist einige Ausgabestrom, wo die verschlüsselten Daten werden gespeichert und im Eingang ist einige InputStream, wo die Klartext-Daten gelesen werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie nur angeben, verschiedene Speichertyp
keytool -genseckey -alias check2 -keyalg AES -keysize 128 -storepass changeit -storetype JCEKS -keystore ks.jck
Zertifikate werden für public-key-Kryptographie und enthalten keine Verschlüsselung Schlüssel für den symmetrischen block-cipher AES-128. Stattdessen werden public-key-Kryptographie wird nur verwendet, um zu verschlüsseln oder zu verhandeln, die 128-bit-AES-Schlüssels und der rest der Konversation verwendet AES.
Den 128-bit-AES-Schlüssel ist kein Zertifikat, es ist nur 128 bit aus einer kryptografisch starken Zufallszahlengenerator oder aus einer passphrase abgeleitet, mit einem hashing-Algorithmus, wie PBKDF2. Wie bekommen Sie diese Teile Ihrer Anwendung abhängen. SSL - /TLS-aushandeln muss, einen zufälligen Schlüssel, aber ein hard-disk-Verschlüsselung-Programm würde daraus den Schlüssel aus einer passphrase.
Würde es Sinn machen, die kürzer ist als 512-bit-Schlüssel-Paare erzeugt werden kann. Public-Key-Kryptographie benötigt eine längere Schlüssel als symmetrische Schlüssel-Kryptographie zu erhalten das gleiche Maß an Sicherheit. Eine 128-bit-Schlüssel-paar wird nicht empfohlen für die public-key-Kryptographie.