В чем разница между PBEWithSHA1AndTripleDES и PBEWithSHA1And3KeyTripleDES, что там означает 3key?
Все эти 2 поддерживаются в IBM JCE, как показано в ссылке ниже




В общем, «3-ключ» и «2-ключ» (также известный как ключ тройной и двойной длины) - это варианты манипуляции 1 и 2 шифра, обычно называемого Triple-DES, или 3DES, или TDES, или DES-EDE, хотя официально он был определен как TDEA. . (В Java-шифровании DES-EDE обычно пишется без дефиса, а вторая часть в нижнем регистре = DESede - хотя регистр игнорируется при поиске алгоритмов с помощью Cipher.getInstance() и т.п.) Это применимо как к шифрованию на основе пароля, как здесь, так и к обычному (на основе ключа) шифрование.
Сопоставления в таблице ясно показывают, что IBM реализует две схемы шифрования на основе паролей (для закрытых ключей) с использованием 3DES с этими двумя вариантами ключей, определенными PKCS12 aka rfc7292 в приложении C:
pbeWithSHAAnd3-KeyTripleDES-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 3}
pbeWithSHAAnd2-KeyTripleDES-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 4}
IBM предоставляет несколько вариантов написания каждого имени (с опущенным -CBC), а для схемы с 3 ключами также имена с НЕ указанным ключом PBEWith{SHA-1,SHA1,SHA}And{3DES,DESede,TripleDES}а также OID (который обычно более полезен для обмена) {,OID.}1.2.840.113549.1.12.1.3 в качестве синонимов. Это может быть предназначено для облегчения перехода от реализации Oracle-was-Sun-and-OpenJDK, которая реализует трехклавишную схему Только с измененным и сокращенным именем PBEWithSHA1AndDESede и OID в качестве синонима (последний не задокументирован AFAICS).
OTOH IBM, по-видимому, реализует четыре другие схемы PKCS12, основанные на RC2 и RC4, используя стандартные варианты написания плюс варианты PBEWith{SHA,SHA-1,SHA1}And{40,128}Bit{RC2-CBC,RC4} (и без OID?), Тогда как Oracle и OpenJDK 8+ использует PBEWithSHA1AND{RC2,RC4}_{40,128} и соответствующие OID. Иди разберись.
Благодарю . короче говоря, PBEWithSHAAndTripleDES - это вариант 1, а PBEWithSHA1And3KeyTripleDES - вариант 3?
@JammyLee: нет. Номера опций имеют обратную силу: вариант 1 - 3-клавишный, вариант 2 - 2-клавишный, вариант 3 - 1-клавишный (что в основном бесполезно, потому что это то же самое, что и исходный НЕ-тройной DES / DEA). Имена, определяющие 3key, - это вариант 1, тройная длина. Имена, не определяющие длину ключа, являются синонимами 3key и, следовательно, той же опции. Имена, определяющие 2key, являются вариантом 2, двойной длины.
Без какого-либо контекста это плохой вопрос. Ни один из алгоритмов не отображается в docs.oracle.com/javase/8/docs/technotes/guides/security/…