PBEWithSHA1AndTripleDES против PBEWithSHA1And3KeyTripleDES

В чем разница между PBEWithSHA1AndTripleDES и PBEWithSHA1And3KeyTripleDES, что там означает 3key?

Все эти 2 поддерживаются в IBM JCE, как показано в ссылке ниже

https://www.ibm.com/support/knowledgecenter/en/SSYKE2_9.0.0/com.ibm.java.multiplatform.90.doc/user/compsec_jce_algos.html

Без какого-либо контекста это плохой вопрос. Ни один из алгоритмов не отображается в docs.oracle.com/javase/8/docs/technotes/guides/security/…

President James K. Polk 29.03.2018 04:31
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
1
530
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В общем, «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?

Jammy Lee 30.03.2018 08:11

@JammyLee: нет. Номера опций имеют обратную силу: вариант 1 - 3-клавишный, вариант 2 - 2-клавишный, вариант 3 - 1-клавишный (что в основном бесполезно, потому что это то же самое, что и исходный НЕ-тройной DES / DEA). Имена, определяющие 3key, - это вариант 1, тройная длина. Имена, не определяющие длину ключа, являются синонимами 3key и, следовательно, той же опции. Имена, определяющие 2key, являются вариантом 2, двойной длины.

dave_thompson_085 31.03.2018 09:37

Другие вопросы по теме