OpenJCEPlus sağlayıcısı

OpenJCEPlus şifreleme sağlayıcısı, Java™ Cryptography Extensions (JCE) API 'lerinin bir uygulamasıdır. Bu uygulama şunları içerir: örneğin, şifreler, imzalar, ileti özetleri, MAC' ler ve HMC ' ler, güvenli rasgele sayı oluşturma ve anahtar oluşturma. SDK ' nın 8. sürümünde bu güvenlik sağlayıcısı IBMJCEPlus sağlayıcısı olarak biliniyordu.

OpenJCEPlus sağlayıcısı, desteklenen yerlerde donanım hızlandırılmış şifreleme algoritmaları sunan IBM Z® donanımı için yerel arabirimleri kullanır.

OpenJCEPlus sağlayıcısının etkinleştirilmesi

OpenJCEPlus sağlayıcısı, JAVA_HOME/conf/security/java.security dosyasındaki konumu nedeniyle varsayılan olarak etkindir. Varsayılan olarak farklı bir sağlayıcı kullanmak istiyorsanız, bu sağlayıcıyı bu dosyada OpenJCEPlus sağlayıcısının önüne taşıyın.

Not: Uygulamanız sağlayıcı listesini ve sağlayıcının hata durumunda yedek sisteme geçiş mekanizmalarını kullanmak yerine bir sağlayıcı adına yönelik sabit kodlu başvurular içeriyorsa, java.security dosyasında yapılan değişiklikler uygulamanızı etkilemeyebilir.

Desteklenen algoritmalar

Aşağıdaki tablo, şu anda desteklenen algoritmaları göstermektedir. Ek algoritma desteği, gelecekteki yayınlar için tasarlanmıştır.

Tablo 1. OpenJCEPlus sağlayıcısı tarafından desteklenen algoritmalar
Uygulama Programlama Arabirimi Desteklenen algoritmalar
Algoritma parametresi AES, ChaCha20, ChaCha20-Poly1305, DESede, DH, DSA, EC, GCM, OAEP, RSASSA-PSS
Algoritma değiştirgesi üreteci DH, DSA, EC, GCM
Şifreleme algoritmaları AES, ChaCha20, ChaCha20-Poly1305, DESede, RSA
Şifre kipleri
AES şu kipleri destekler: CFB8, CFB128, CFB, ECB, CBC, OFB, GCM
DESede şu kipleri destekler: ECB, CBC
RSA şu kipleri destekler: null, ECB, SSL
Anahtar sözleşmesi algoritmaları DH, ECDH, XDH, X25519, X448
Anahtar üreticisi DH, DSA, EC, EdDSA, Ed25519, Ed448, RSA , RSASSA-PSS, XDH, X25519, X448
Anahtar üreteci AES, ChaCha20, DESede, HmacMD5, HmacSHA1, HmacSHA224, HmacSHA256, HmacSHA384, HmacSHA512, HmacSHA3-224, HmacSHA3-256, HmacSHA3-384, HmacSHA3-512 , kda-hkdf-with-sha1, kda-hkdf-with-sha224, kda-hkdf-with-sha256, kda-hkdf-with-shasha384, kda-hkdf-with-sha512
Anahtar çifti oluşturucusu DH, DSA, EC, EdDSA, Ed25519, Ed448, RSA, RSASSA-PSS, XDH, X25519, X448
İleti kimlik doğrulama kodu (MAC) HmacMD5, HmacSHA1, HmacSHA224, HmacSHA256, HmacSHA384, HmacSHA512, HmacSHA3-224, HmacSHA3-256, HmacSHA3-384, HmacSHA3-512
İleti özeti MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256, SHA3-224, SHA3-256, SHA3-384, SHA3-512
Gizli anahtar üreticisi AES, ChaCha20, DESede
Güvenli rasgele HASHDRBG, SHA256DRBG (varsayılan), SHA512DRBG
İmza algoritmaları EdDSA, Ed25519, Ed448, NONEwithDSA, NONEwithECDSA, NONEwithRSA, RSASSA-PSS, SHA1withDSA, SHA224withDSA, SHA256withDSA, SHA1withECDSA, SHA224withECDSA, SHA256withECDSA, SHA384withECDSA SHA1withRSA, SHA224withRSA, SHA256withRSA, SHA384withRSA, SHA512withRSA, SHA3-224withDSA, SHA3-256withDSA, SHA3-384withDSA, SHA3-512withDSA, SHA3-224withECDSA, SHA3-256withECDSA, SHA3-384withECDSA SHA3-256withRSA, SHA3-384withRSA, SHA3-512withRSA

Desteklenen eliptik eğriler

Aşağıdaki çizelge, OpenJCEPlus sağlayıcısınınöğesini uyguladığı eliptik eğrileri, bunların nesne tanıtıcılarını ve bunlara gönderme yapmak için kullanılan ek adları ya da diğer adları listeler. Bir satırda görünen tüm dizgiler aynı eğriye başvurmaktadır. Örneğin, secp256r1, 1.2.840.10045.3.1.7, NIST P-256ve X9.62 prime256v1 dizgileri aynı eğriye başvurmaktadır. ECGenParameterSpec sınıfıyla EC parametre oluşturma için parametre belirtimleri oluşturmak üzere eğri adlarını kullanabilirsiniz.
Tablo 2. OpenJCEPlus tarafından uygulanan eliptik eğriler
Eğri adı Nesne Tanıtıcısı Ek adlar ya da diğer adlar
secp112r1 1.3.132.0.6  
secp112r2 1.3.132.0.7  
secp128r1 1.3.132.0.28  
secp128r2 1.3.132.0.29  
secp160k1 1.3.132.0.9  
secp160r1 1.3.132.0.8  
secp160r2 1.3.132.0.30  
secp192k1 1.3.132.0.31  
secp192r1 1.2.840.10045.3.1.1 NIST P-192, X9.62 prime192v1
secp224k1 1.3.132.0.32  
secp224r1 1.3.132.0.33 NIST P-224
secp256k1 1.3.132.0.10  
secp256r1 1.2.840.10045.3.1.7 NIST P-256, X9.62 prime256v1
secp384r1 1.3.132.0.34 NIST P-384
secp521r1 1.3.132.0.35 NIST P-521
X9.62 prime192v2 1.2.840.10045.3.1.2  
X9.62 prime192v3 1.2.840.10045.3.1.3  
X9.62 prime239v1 1.2.840.10045.3.1.4  
X9.62 prime239v2 1.2.840.10045.3.1.5  
X9.62 prime239v3 1.2.840.10045.3.1.6  
brainpoolP160r1 1.3.36.3.3.2.8.1.1.1  
brainpoolP192r1 1.3.36.3.3.2.8.1.1.3  
brainpoolP224r1 1.3.36.3.3.2.8.1.1.5  
brainpoolP256r1 1.3.36.3.3.2.8.1.1.7  
brainpoolP320r1 1.3.36.3.3.2.8.1.1.9  
brainpoolP384r1 1.3.36.3.3.2.8.1.1.11  
brainpoolP512r1 1.3.36.3.3.2.8.1.1.13  

Bilinen sınırlamalar

  • Yalnızca RSA anahtar boyutları 512, 1024, 2048 ve 4096 desteklenir.
  • RSA anahtarı genel üsleri 65537 ya da daha büyük olmalıdır.
  • RSA özel anahtarları CRT (Çin Kalan Teoremi) anahtarları olmalıdır. CRT parametreleri olmayan özel anahtarlar desteklenmez. Oluşturulan anahtar çiftlerinin CRT özel anahtarları olur.
  • NoPadding seçeneğiyle RSA şifre çözme, şifresi çözülen metinde doldurma baytları bırakabilir.
  • İkili Eliptik Eğriler desteklenmez.
  • OpenJCEPlus içindeki sağlayıcıların kendi Anahtar Deposu somutlamaları yoktur. Bunun yerine, anahtar deposu somutlamaları (JKS, JCEKS, PKCS#12) SUN ve SunJCE sağlayıcılarından gelir.
  • OpenJCEPlus tarafından kullanılan temel yerli kitaplığın sürümü, henüz OpenJCEPlustarafından desteklenmeyen bazı algoritmalar için destek ekler. Bu algoritmalar şunlardır:
    • Veri şifreleme ve şifre çözme için AES-CTR algoritması desteklenmez.
  • AES-GCM şifreleme ve şifre çözme Cipher.update işlemleri, aşağıdaki nedenle yalnızca korunması gereken büyük miktarlarda veri için yapılmalıdır. Kimlik doğrulama etiketi yalnızca doFinal (Cipher.doFinal()) işleminde doğrulanabilir; doFinal işlemi herhangi bir nedenle başarısız olursa, önceki update işleminden döndürülen tüm düz metin atılmalıdır. Bu nedenle, daha küçük miktarlarda veri için yalnızca doFinal işlemlerinin çalıştırılması mantıklı olur.

    AES-GCM 'nin şifreleme akışı API' leriyle (CipherInputStream ve CipherOutputStream) birlikte kullanılması önerilmez; bu API 'ler AES-GCM' nin karmaşıklıklarıyla başa çıkmak için tasarlanmamıştır.

  • RSASSA-PSS imzası RSA düz anahtarlarını desteklemez.
  • RSASSA-PSS, giriş özeti algoritmaları olarak SHA-1, SHA-224, SHA-256, SHA-384ve SHA-512 algoritmalarını destekler.
  • EdDSA imzası, Ed25519 ya da Ed448' in iki saf kipini destekler.