PBEWith AndTripleDES Требуется политика «Неограниченная сила»
Этот алгоритм использует 168-битный ключ (хотя из-за уязвимостей он имеет эффективную силу 112 бит).Чтобы использовать симметричный ключ этой длины, вам нужно «Политика неограниченной юрисдикции» , установленная в вашей среде выполнения Java.
Сообщение « Недопустимый размер ключа» указываетдлина ключа не разрешена политикой;если длина ключа неверна для алгоритма, поставщик SunJCE использует сообщение « Неверный размер ключа».
Не использовать PBEW с AndTripleDES
Обратите внимание, что «PBEWithMD5AndTripleDES» является неправильным алгоритмом для использования.
Шифрование на основе пароля обычно следует PKCS # 5. Он определяет схему шифрования для DES (или RC2), называемую PBES1.Поскольку PBES1 был разработан для генерации 64-битных (или менее) ключей, Oracle создал собственное расширение для генерации более длинных ключей.Он не подвергался той же проверке, что и PKCS # 5, и если вам нужно взаимодействовать с любой другой платформой, вам придется копаться в исходном коде , чтобы узнать, какключ и вектор инициализации являются производными.
Также странно, что вектор инициализации является производным от пароля.Целью IV является создание разных зашифрованных текстов каждый раз, когда данный простой текст шифруется одним и тем же ключом.Если IV генерируется из ключа, эта цель побеждена.Алгоритм получения ключа, используемый PBES1, позволяет избежать этого, добавляя «соль», которая должна отличаться при каждом использовании пароля.Но это может быть легко облажаться;Предоставление IV непосредственно для инициализации шифра является более обычным и делает более очевидным, что происходит.
Использование PBKDF2 Вместо
PKCS # 5 также определяется алгоритм вывода ключа, называемый PBKDF2, которыйтеперь поддерживается Java.Он обеспечивает превосходную безопасность для PBES1, поскольку вектор инициализации и любые другие параметры, требуемые шифром, не получены из пароля, но выбраны независимо.
Вот пример с PBKDF2 с использованием AES.Если вы не можете выполнить рекомендацию по обновлению до AES, пример можно применить к DESede, используя длину ключа 192 и изменив вхождения «AES» на «DESede».
Параметры ключей TDEA
Существует три варианта клавиш, которые можно использовать с TDEA («Triple DES» или «DESede»).Они берут 64-, 128- или 192-битные ключи (включая биты четности), в зависимости от опции.
Размеры ключей, принятые реализацией TDEA, зависят от поставщика;некоторые требуют, чтобы вы сформировали 192-битный ключ, даже если вы используете опцию 56-битного ключа, которая фактически является DES вместо TDEA.В большинстве реализаций в качестве ключа используется 16 или 24 байта.
Только вариант с тремя ключами (168 бит или 192 бита с проверкой четности) можно считать "надежным шифрованием".Он имеет 112 бит эффективной силы.