Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

Архитектура Криптографии Java™
Стандартная Документация Имени Алгоритма

для Платформы Java Standard Edition 7


Отметьте: Документация Провайдера Sun содержит определенного провайдера и информацию об алгоритме.


Стандартные имена

API Безопасности JDK требует и использует ряд стандартных имен для алгоритмов, сертификата и типов keystore. Эта спецификация устанавливает следующие имена как стандартные имена.

В некоторых случаях соглашения о присвоении имен даются для того, чтобы сформировать имена, которые явно не перечисляются, чтобы облегчить непротиворечивость имени через реализации провайдера. Элементы в угловых скобках (такой как <digest> и <encryption>) заполнители, которые будут заменены определенным обзором сообщения, алгоритмом шифрования, или другим именем.


Отметьте: Стандартные имена не являются чувствительными к регистру.


Этот документ включает соответствующие списки стандартных имен, относящихся к следующим подобластям безопасности:

AlgorithmParameterGenerator Алгоритмы

Имена алгоритма в этом разделе могут быть определены, генерируя экземпляр AlgorithmParameterGenerator.

Имя алгоритма Описание
DiffieHellman Параметры для использования с алгоритмом Diffie-Hellman.
DSA Параметры для использования с Алгоритмом цифровой подписи.

AlgorithmParameters Алгоритмы

Имена алгоритма в этом разделе могут быть определены, генерируя экземпляр AlgorithmParameters.

Имя алгоритма Описание
AES Параметры для использования с алгоритмом AES.
Шифр Параметры для использования с алгоритмом Шифра.
DES Параметры для использования с алгоритмом DES.
DESede Параметры для использования с алгоритмом DESede.
DiffieHellman Параметры для использования с алгоритмом DiffieHellman.
DSA Параметры для использования с Алгоритмом цифровой подписи.
OAEP Параметры для использования с алгоритмом OAEP.
PBEWith <обзор> И <шифрование> Параметры для использования с PBEWith <обзор> И <шифрование> алгоритм. Примеры: PBEWithMD5AndDES, и PBEWithHmacSHA1AndDESede.
PBE Параметры для использования с алгоритмом PBE. Это имя не должно использоваться, в предпочтении к более определенным именам алгоритма PBE, ранее перечисленным.
RC2 Параметры для использования с алгоритмом RC2.

CertificateFactory Типы

Тип в этом разделе может быть определен, генерируя экземпляр CertificateFactory.

Ввести Описание
X.509 Тип сертификата, определенный в X.509, также доступном через RFC 3280

CertPathBuilder Алгоритмы

Алгоритм в этом разделе может быть определен, генерируя экземпляр CertPathBuilder.

Имя алгоритма Описание
PKIX Алгоритм проверки допустимости пути сертификации PKIX как определено в атрибуте службы ValidationAlgorithm. Вывод CertPathBuilder экземпляры реализовывая этот алгоритм являются путем сертификации, проверенным против алгоритма проверки допустимости PKIX.

Кодировки CertPath

Следующие кодировки можно передать к getEncoded метод CertPath или generateCertPath(InputStream inStream, String encoding) метод CertificateFactory.

Кодирование Описание
PKCS7 PKCS#7 объект SignedData, с единственным существенным полем, являющимся сертификатами. В частности подпись и содержание игнорируются. Если никакие сертификаты не присутствуют, нулевое длиной CertPath принимается. Предупреждение: PKCS#7 не поддерживает порядок сертификатов в пути сертификации. Это означает это если a CertPath преобразовывается в PKCS#7 закодированные байты и затем преобразовал назад, порядок сертификатов может измениться, потенциально представляя CertPath недопустимый. Пользователи должны знать об этом поведении. См. Безопасность RSA для деталей о PKCS7.
PkiPath ASN.1 DER закодированная последовательность сертификатов, определенных следующим образом:
    PkiPath ::= SEQUENCE OF Certificate
В пределах последовательности порядок сертификатов является так, что предметом первого сертификата, выпускающий второго сертификата, и так далее. Каждый сертификат в PkiPath будет уникально. Никакой сертификат не может появиться не раз в значении Certificate в PkiPath. PkiPath формат определяется в дефектном отчете 279 против X.509 (2000) и включается в Техническую Опечатку 1 (DTC 2) для ITU-T Рекомендация X.509 (2000). См. веб-сайт ITU для деталей.

CertPathValidator Алгоритмы

Алгоритм в этом разделе может быть определен, генерируя экземпляр CertPathValidator.

Имя алгоритма Описание
PKIX Алгоритм проверки допустимости пути сертификации PKIX как определено в атрибуте службы ValidationAlgorithm.

CertStore Типы

Тип в этом разделе может быть определен, генерируя экземпляр CertStore.

Ввести Описание
Набор A CertStore реализация, которая получает сертификаты и CRL от a Collection. Этот тип CertStore особенно полезно в приложениях, где сертификаты или CRL получаются в сумке или своего рода присоединении, такой как с подписанным электронным письмом или в согласовании SSL.
LDAP A CertStore реализация, которая выбирает сертификаты и CRL из каталога LDAP, используя схему, определенную в атрибуте службы LDAPSchema.

Cipher (Шифрование) Алгоритмы

Имена Алгоритма шифра

Следующие имена могут быть определены как компонент алгоритма в преобразовании, запрашивая экземпляр Cipher.

Имя алгоритма Описание
AES Усовершенствованный стандарт шифрования как определено NIST в FIPS 197. Также известный как алгоритм Rijndael Джоан Дэемен и Винсентом Риджменом, AES является 128-разрядной поддержкой блочного шифра ключи 128, 192, и 256 битов.
AESWrap Ключ AES переносящийся алгоритм как описано в RFC 3394.
ARCFOUR Поточный шифр, который, как полагают, был полностью взаимодействующим с шифром RC4, разработанным Роном Ривестом. Для получения дополнительной информации см. К. Коконена и Р. Тейера, "Алгоритм шифрования Поточного шифра 'Arcfour'", интернет-(истекший) Проект, draft-kaukonen-cipher-arcfour-03.txt.
Шифр Блочный шифр Шифра разрабатывается Брюсом Шнайером.
CCM Режим счетчика/CBC, как определено в NIST Специальный 800-38C SP Публикации.
DES Цифровой Стандарт Шифрования как описано в ПАБЕ FIPS 46-3.
DESede Тройное Шифрование DES (также известный как ЭДЕ DES, 3DES, или Тройной DES). Данные шифруются, используя алгоритм DES три отдельных раза. Это сначала шифруется, используя первый подключ, затем дешифровало со вторым подключом, и зашифровало с третьим подключом.
DESedeWrap Алгоритм обертывания ключа DESede как описано в RFC 3217.
ECIES Эллиптическая кривая Интегрированная Схема Шифрования
GCM Режим Galois/Counter, как определено в NIST Специальный 800-38D SP Публикации.
PBEWith <обзор> И <шифрование> PBEWith <частота повторения импульсов> И <шифрование> Основанный на пароле алгоритм шифрования, найденный в (PKCS5), используя указанный обзор сообщения (<обзор>) или псевдослучайная функция (<частота повторения импульсов>) и алгоритм шифрования (<шифрование>). Примеры:
RC2 Алгоритмы шифрования переменного размера ключа разрабатываются Роном Ривестом для RSA Data Security, Inc.
RC4 Алгоритмы шифрования переменного размера ключа, разработанные Роном Ривестом для RSA Data Security, Inc. (См. примечание, предшествующее для ARCFOUR.)
RC5 Алгоритмы шифрования переменного размера ключа разрабатываются Роном Ривестом для RSA Data Security, Inc.
RSA Алгоритм шифрования RSA как определено в PKCS #1

Режимы Алгоритма шифра

Следующие имена могут быть определены как компонент режима в преобразовании, запрашивая экземпляр Cipher.

Имя алгоритма Описание
НИ ОДИН Никакой режим.
CBC Режим Сцепления блоков шифра, как определено в ПАБЕ FIPS 81.
CFB, CFBx Режим Обратной связи шифра, как определено в ПАБЕ FIPS 81.

Используя режимы, такие как CFB и OFB, блочные шифры могут зашифровать данные в модулях, меньших чем фактический размер блока шифра. Запрашивая такой режим, можно дополнительно определить число битов, которые будут обработаны за один раз, добавляя это число к имени режима как показано в "DES/CFB8/NoPadding" и "DES/OFB32/PKCS5Padding" преобразованиях. Если никакое такое число не определяется, специфичное для провайдера значение по умолчанию используется. (Например, провайдер SunJCE использует значение по умолчанию 64 битов для DES.) Таким образом блочные шифры могут быть превращены в байтовые поточные шифры при использовании 8-разрядного режима, такие как CFB8 или OFB8.
CTR Упрощение OFB, Встречный режим обновляет входной блок как счетчик.
CTS Кража Шифрованного текста, как описано в книге Брюса Шнайера Примененный Выпуск С секундой криптографии, Джон Вайли и Сыновья, 1996.
ECB Электронный Режим Книги шифров, как определено в ПАБЕ FIPS 81.
OFB, OFBx Выходной Режим Обратной связи, как определено в ПАБЕ FIPS 81.

Используя режимы, такие как CFB и OFB, блочные шифры могут зашифровать данные в модулях, меньших чем фактический размер блока шифра. Запрашивая такой режим, можно дополнительно определить число битов, которые будут обработаны за один раз, добавляя это число к имени режима как показано в "DES/CFB8/NoPadding" и "DES/OFB32/PKCS5Padding" преобразованиях. Если никакое такое число не определяется, специфичное для провайдера значение по умолчанию используется. (Например, провайдер SunJCE использует значение по умолчанию 64 битов для DES.) Таким образом блочные шифры могут быть превращены в байтовые поточные шифры при использовании 8-разрядного режима, такие как CFB8 или OFB8.
PCBC Распространение Сцепления блоков шифра, как определено Kerberos V4.

Дополнение Алгоритма шифра

Следующие имена могут быть определены как дополнительный компонент в преобразовании, запрашивая экземпляр Cipher.

Имя алгоритма Описание
NoPadding Никакое дополнение.
ISO10126Padding Это дополнение для блочных шифров описывается в 5.2 Алгоритмах Блочного шифрования в "Синтаксисе Шифрования XML W3C и Обработке" документ.
OAEPPadding, OAEPWith <обзор> И <mgf> Дополнение Оптимальная схема Asymmetric Encryption Padding, определенная в PKCS1, где <обзор> должен быть заменен обзором сообщения и <mgf> функцией генерации маски. Примеры: OAEPWithMD5AndMGF1Padding и OAEPWithSHA-512AndMGF1Padding.

Если OAEPPadding используется, Cipher объекты инициализируются с a javax.crypto.spec.OAEPParameterSpec возразите, чтобы предоставить значения, необходимые для OAEPPadding.
PKCS1Padding Дополнительная схема, описанная в PKCS #1, используемый с алгоритмом RSA.
PKCS5Padding Дополнительная схема, описанная в Лабораториях RSA, "PKCS #5: основанный на пароле Стандарт Шифрования," версия 1.5, ноябрь 1993.
SSL3Padding Дополнительная схема, определенная в Версии 3.0 Протокола SSL, 18 ноября 1996, раздел 5.2.3.2 (блочный шифр CBC):
    block-ciphered struct {
        opaque content[SSLCompressed.length];
        opaque MAC[CipherSpec.hash_size];
        uint8 padding[
            GenericBlockCipher.padding_length];
        uint8 padding_length;
    } GenericBlockCipher;
Размер экземпляра GenericBlockCipher должен быть кратным числом длины блока блочного шифра.

Дополнительная длина, которая всегда присутствует, способствует дополнению, которое подразумевает что если:
    sizeof(content) + sizeof(MAC) % block_length = 0, 
дополнение должно быть (block_length - 1) байтами долго из-за существования padding_length.

Это делает дополнительную схему подобной (но не совсем) к PKCS5Padding, где дополнительная длина кодируется в дополнении (и колеблется от 1 до block_length). Со схемой SSL sizeof (дополнение) кодируется во всегда подарок padding_length и поэтому диапазоны от 0 до block_length-1.

Configuration Типы

Тип в этом разделе может быть определен, генерируя экземпляр javax.security.auth.login.Configuration.

Ввести Описание
JavaLoginConfig Реализация Конфигурации значения по умолчанию от провайдера SUN, как описано в ConfigFile спецификация class. Этот тип принимает java.security.URIParameter как допустимое Configuration.Parameter ввести. Если этот параметр не определяется, то конфигурационная информация загружается из источников, описанных в ConfigFile спецификация class. Если этот параметр определяется, конфигурационная информация загружается исключительно из указанного URI.

Механизмы освобождения

Следующие имена механизма освобождения могут быть определены в файле политики разрешения, который сопровождает заявление, рассмотренное "освобожденный" от криптографических ограничений.

Имя алгоритма Описание
KeyEscrow Система шифрования с резервной возможностью дешифрования, которая позволяет доверенным лицам (пользователи, чиновники организации, и правительственные чиновники), при определенных предписанных условиях, дешифровать шифрованный текст со справкой информации, предоставленной один или более доверяемые стороны, кто удерживает специальные клавиши восстановления данных.
KeyRecovery Метод получения секретного ключа, используемого, чтобы заблокировать зашифрованные данные. Одно использование как средство обеспечения отказоустойчивого доступа к собственной зашифрованной информации корпорации во времена бедствия.
KeyWeakening Метод, в котором часть ключа может быть escrowed или восстановленный.

Механизмы GSSAPI

Следующие механизмы могут быть определены при использовании GSSAPI. Отметьте, что Объектные Идентификаторы (OID) определяются вместо имен, чтобы быть непротиворечивыми со стандартом GSSAPI.

OID механизма Описание
1.2.840.113554.1.2.2 Kerberos v5 механизм GSS-API определяется в RFC 4121.
1.3.6.1.5.5.2 Простое и Защищенное Согласование GSS-API (SPNEGO) механизм определяется в RFC 4178.

KeyAgreement Алгоритмы

Следующие имена алгоритма могут быть определены, запрашивая экземпляр KeyAgreement.

Имя алгоритма Описание
DiffieHellman Согласование ключей Diffie-Hellman как определено в PKCS #3: Стандарт Согласования ключей Diffie-Hellman, Лаборатории RSA, версия 1.4, ноябрь 1993.
ECDH Эллиптическая кривая Diffie-Hellman как определено в ANSI X9.63 и как описано в RFC 3278: "Использование Шифрования в эллиптических кривых (ECC) Алгоритмы в Криптографическом сообщении Синтаксис (CMS)."
ECMQV Эллиптическая кривая Менезеш-Ку-Ванстоне как определено в "Шифровании в эллиптических кривых" от www.secg.org.

KeyFactory Алгоритмы

(За исключением отмеченного, эти классы создают ключи для который Key.getAlgorithm() возвращает стандартное имя алгоритма.)

Имена алгоритма в этом разделе могут быть определены, генерируя экземпляр KeyFactory.

Имя алгоритма Описание
DiffieHellman Ключи для алгоритма KeyAgreement Diffie-Hellman.

Отметьте: key.getAlgorithm() возвратит "DH" вместо "DiffieHellman".

DSA Ключи для Алгоритма цифровой подписи.
RSA Ключи для алгоритма RSA (Подпись/Шифр).
EC Ключи для алгоритма Эллиптической кривой.

KeyGenerator Алгоритмы

Следующие имена алгоритма могут быть определены, запрашивая экземпляр KeyGenerator.

Имя алгоритма Описание
AES Ключевой генератор для использования с алгоритмом AES.
ARCFOUR Ключевой генератор для использования с ARCFOUR (RC4) алгоритм.
Шифр Ключевой генератор для использования с алгоритмом Шифра.
DES Ключевой генератор для использования с алгоритмом DES.
DESede Ключевой генератор для использования с DESede (тройной DES) алгоритм.
HmacMD5 Ключевой генератор для использования с алгоритмом HmacMD5.
HmacSHA1 HmacSHA256 HmacSHA384 HmacSHA512 Ключевой генератор для использования с различными разновидностями алгоритмов HmacSHA.
RC2 Ключевой генератор для использования с алгоритмом RC2.

KeyManagerFactory Алгоритмы

Имя алгоритма в этом разделе может быть определено, генерируя экземпляр KeyManagerFactory.

Имя алгоритма Описание
PKIX Фабрика для X509ExtendedKeyManagers, которые управляют основанными на сертификате парами ключей X.509 для локальной аутентификации стороны согласно правилам, определенным IETF PKIX рабочая группа в RFC 3280 или его преемнике. KeyManagerFactory должен поддерживать инициализацию, используя class javax.net.ssl.KeyStoreBuilderParameters.

KeyPairGenerator Алгоритмы

(За исключением отмеченного, эти классы создают ключи для который Key.getAlgorithm() возвращает стандартное имя алгоритма.)

Имена алгоритма в этом разделе могут быть определены, генерируя экземпляр KeyPairGenerator.

Имя алгоритма Описание
DiffieHellman Генерирует пары ключей для алгоритма KeyAgreement Diffie-Hellman.

Отметьте: key.getAlgorithm() возвратит "DH" вместо "DiffieHellman".

DSA Генерирует пары ключей для Алгоритма цифровой подписи.
RSA Генерирует пары ключей для алгоритма RSA (Подпись/Шифр).
EC Генерирует пары ключей для алгоритма Эллиптической кривой.

KeyStore Типы

Типы в этом разделе могут быть определены, генерируя экземпляр KeyStore.

Ввести Описание
jceks Собственная keystore реализация обеспечила провайдером SunJCE.
jks Собственная keystore реализация обеспечила провайдером SUN.
pkcs12 Синтаксис передачи для персональной информации об идентификационных данных как определено в PKCS #12.

Mac Алгоритмы

Следующие имена алгоритма могут быть определены, запрашивая экземпляр Mac.

Имя алгоритма Описание
HmacMD5 Включенный алгоритм хеширования HMAC-MD5 как определено в RFC 2104 "HMAC: включенный хешированный для Аутентификации сообщений" (февраль 1997).
HmacSHA1
HmacSHA256
HmacSHA384
HmacSHA512
Алгоритмы HmacSHA* как определено в RFC 2104 "HMAC: включенный хешированный для Аутентификации сообщений" (февраль 1997) с SHA-* как алгоритм обзора сообщения.
PBEWith <mac> Mac для использования с PKCS #5 v 2.0 основанных на пароле стандарта аутентификации сообщений, где <mac> имя алгоритма Кода аутентификации сообщений. Пример: PBEWithHmacSHA1.

MessageDigest Алгоритмы

Имена алгоритма в этом разделе могут быть определены, генерируя экземпляр MessageDigest.

Имя алгоритма Описание
MD2 MD2 передают алгоритм обзора как определено в RFC 1319.
MD5 MD5 передают алгоритм обзора как определено в RFC 1321.
SHA 1
SHA 256
SHA 384
SHA 512
Хеш-алгоритмы, определенные в ПАБЕ FIPS 180-2.

SHA 256 является 256-разрядной хеш-функцией, предназначенной, чтобы обеспечить 128 битов безопасности против атак коллизии, в то время как SHA 512 является 512-разрядной хеш-функцией, предназначенной, чтобы обеспечить 256 битов безопасности. 384-разрядный хеш может быть получен, усекая SHA 512 выводов.

Policy Типы

Тип в этом разделе может быть определен, генерируя экземпляр Policy.

Ввести Описание
JavaPolicy Реализация Политики значения по умолчанию от провайдера SUN, как описано в руководстве PolicyFile. Этот тип принимает java.security.URIParameter как допустимое Policy.Parameter ввести. Если этот параметр не определяется, то информация о политике загружается из источников, описанных в разделе Расположения файлов Политики Значения по умолчанию руководства PolicyFile. Если этот параметр определяется, информация о политике загружается исключительно из указанного URI.

SaslClient Механизмы

Механизмы в этом разделе могут быть определены, генерируя экземпляр SaslClient.

Механизм Описание
CRAM-MD5 См. RFC 2195. Этот механизм поддерживает хешированную схему имени пользователя/аутентификации по паролю.
ОБЗОР-MD5 См. RFC 2831. Этот механизм определяет, как Дайджест-аутентификация HTTP может использоваться в качестве механизма SASL.
ВНЕШНИЙ См. RFC 2222. Этот механизм получает информацию об аутентификации из внешнего канала (такого как TLS или IPsec).
GSSAPI См. RFC 2222. Этот механизм использует GSSAPI для того, чтобы получить информацию об аутентификации. Это поддерживает Kerberos v5 аутентификация.
ПЛОСКОСТЬ См. RFC 2595. Этот механизм поддерживает имя пользователя открытого текста / аутентификация по паролю.

SaslServer Механизмы

Механизмы в этом разделе могут быть определены, генерируя экземпляр SaslServer.

Механизм Описание
CRAM-MD5 См. RFC 2195. Этот механизм поддерживает хешированное имя пользователя / схема аутентификации по паролю.
ОБЗОР-MD5 См. RFC 2831. Этот механизм определяет, как Дайджест-аутентификация HTTP может использоваться в качестве механизма SASL.
GSSAPI См. RFC 2222. Этот механизм использует GSSAPI для того, чтобы получить информацию об аутентификации. Это поддерживает Kerberos v5 аутентификация.

SecretKeyFactory Алгоритмы

Следующие имена алгоритма могут быть определены, запрашивая экземпляр SecretKeyFactory.

Имя алгоритма Описание
AES Секретные ключи конструкций для использования с алгоритмом AES.
ARCFOUR Секретные ключи конструкций для использования с алгоритмом ARCFOUR.
DES Секретные ключи конструкций для использования с алгоритмом DES.
DESede Секретные ключи конструкций для использования с DESede (Тройной DES) алгоритм.
PBEWith <обзор> И <шифрование>
PBEWith <частота повторения импульсов> И <шифрование>
Фабрика секретного ключа для использования с основанным на пароле шифрованием PKCS5, где <обзор> обзор сообщения, <частота повторения импульсов>, является псевдослучайной функцией, и <шифрование> алгоритм шифрования.

Примеры:

  • PBEWithMD5AndDES (PKCS5, v 1.5),
  • PBEWithHmacSHA1AndDESede (PKCS5, v 2.0), и
Отметьте: они все использование только младший разряд 8 битов каждого символа пароля.
PBKDF2WithHmacSHA1 Секретные ключи конструкций, используя Основанную на пароле Ключевую функцию Функции Деривации, найденную в PKCS #5 v2.0.

SecureRandom Генерация числа (RNG) Алгоритмы

Имя алгоритма в этом разделе может быть определено, генерируя экземпляр SecureRandom.

Имя алгоритма Описание
SHA1PRNG Имя генерации псевдослучайного числа (PRNG) алгоритм предоставляется провайдером SUN. Этот алгоритм использует SHA 1 в качестве основы PRNG. Это вычисляет SHA 1, долго обсуждают истинно-случайное значение семени, связанное с 64-разрядным счетчиком, который постепенно увеличивается 1 для каждой работы. От 160-разрядного SHA 1 вывод используются только 64 бита.

Атрибуты службы

Криптографическая служба всегда связывается с определенным алгоритмом или типом. Например, служба цифровой подписи всегда связывается с определенным алгоритмом (например, DSA), и a CertificateFactory служба всегда связывается с определенным типом сертификата (например, X.509).

Атрибуты в этом разделе для криптографических служб. Атрибуты службы могут использоваться в качестве фильтров для того, чтобы выбрать провайдеров.

Оба название атрибута и значение являются нечувствительными к регистру.

Атрибут Описание
KeySize Максимальный размер ключа, который провайдер поддерживает для криптографической службы.
ImplementedIn Делается ли реализация для криптографической службы программным обеспечением или аппаратными средствами. Значение этого атрибута является "программным обеспечением" или "аппаратными средствами".
ValidationAlgorithm Имя спецификации, которая определяет алгоритм проверки допустимости пути сертификации что реализация CertPathBuilder или CertPathValidator поддерживает. RFCs должен быть определен как "RFC#" (исключая: "RFC3280") и интернет-Проекты как имя проекта (исключая: "draft-ietf-pkix-rfc2560bis-01.txt"). Значения для этого атрибута, которые определяются как критерии отбора к Security.getProviders метод будет сравнен, используя String.equalsIgnoreCase метод. Все реализации PKIX CertPathBuilder и CertPathValidator должен обеспечить значение для этого атрибута.
LDAPSchema Имя спецификации, которая определяет схему LDAP что реализация LDAP CertStore использование, чтобы получить сертификаты и CRL. Формат и семантика этого атрибута являются тем же самым как описано для атрибута ValidationAlgorithm. Все реализации LDAP CertStore должен обеспечить значение для этого атрибута.

Например:

   map.put("KeyPairGenerator.DSA",
            "sun.security.provider.DSAKeyPairGenerator");
        map.put("KeyPairGenerator.DSA KeySize", "1024");
        map.put("KeyPairGenerator.DSA ImplementedIn", "Software");

Signature Алгоритмы

Имена алгоритма в этом разделе могут быть определены, генерируя экземпляр Signature.

Имя алгоритма Описание
NONEwithRSA Алгоритм подписи RSA, который не использует алгоритм переваривания (например, MD5/SHA1) прежде, чем выполнить работу RSA. Для получения дополнительной информации об алгоритмах Подписи RSA, см. PKCS #1.
MD2withRSA
MD5withRSA
MD2/MD5 с алгоритмом подписи Шифрования RSA, который использует алгоритм обзора MD2/MD5 и RSA, чтобы создать и проверить цифровые подписи RSA как определено в PKCS #1.
SHA1withRSA SHA256withRSA
SHA384withRSA
SHA512withRSA
Алгоритм подписи с SHA-* и алгоритм шифрования RSA как определено на Семинаре по Функциональной совместимости OSI, используя дополнительные соглашения, описанные в PKCS #1.
NONEwithDSA Алгоритм цифровой подписи как определено в ПАБЕ FIPS 186-2. Данные должны быть точно 20 байтов в длине. Этот алгоритм также известен как rawDSA.
SHA1withDSA DSA с SHA 1 алгоритм подписи, который использует SHA 1 алгоритм обзора и DSA, чтобы создать и проверить цифровые подписи DSA как определено в ПАБЕ FIPS 186.
NONEwithECDSA
SHA1withECDSA
SHA256withECDSA
SHA384withECDSA
SHA512withECDSA
(ECDSA)
Алгоритмы подписи ECDSA как определено в ANSI X9.62.

Отметьте: "ECDSA" является неоднозначным именем для алгоритма "SHA1withECDSA" и не должен использоваться. Официальное имя "SHA1withECDSA" должно использоваться вместо этого.

<обзор> с <шифрованием> Используйте это, чтобы сформировать имя для алгоритма подписи с определенным обзором сообщения (таким как MD2 или MD5) и алгоритма (такого как RSA или DSA), как был сделан для явно определенных стандартных имен в этом разделе (MD2withRSA, и так далее).

Для новых схем подписи, определенных в PKCS #1 v 2.0, для которого <обзор> с <шифрованием> форма недостаточна, <обзор> с <шифрованием> и <mgf>, может использоваться, чтобы сформировать имя. Здесь, <mgf> должен быть заменен функцией генерации маски, такой как MGF1. Пример: MD5withRSAandMGF1.

SSLContext Алгоритмы

Имена алгоритма в этом разделе могут быть определены, генерируя экземпляр SSLContext.

Имя алгоритма Описание
SSL Поддерживает некоторую версию SSL; может поддерживать другие версии
SSLv2 Поддерживает версию 2 SSL или позже; может поддерживать другие версии
SSLv3 Поддерживает версию 3 SSL; может поддерживать другие версии
TLS Поддерживает некоторую версию TLS; может поддерживать другие версии
TLSv1 Поддерживает RFC 2246: версия 1.0 TLS; может поддерживать другие версии
TLSv1.1 Поддерживает RFC 4346: версия 1.1 TLS; может поддерживать другие версии
TLSv1.2 Поддерживает RFC 5246: версия 1.2 TLS; может поддерживать другие версии

TrustManagerFactory Алгоритмы

Имя алгоритма в этом разделе может быть определено, генерируя экземпляр TrustManagerFactory.

Имя алгоритма Описание
PKIX Фабрика для X509ExtendedTrustManager объекты, которые проверяют цепочек сертификата согласно правилам, определенным IETF PKIX рабочая группа в RFC 3280 или его преемнике. TrustManagerFactory должен поддерживать инициализацию, используя class javax.net.ssl.CertPathTrustManagerParameters.

XML-подпись (XMLSignatureFactory/KeyInfoFactory/TransformService) Механизмы

Механизм в этом разделе может быть определен, генерируя экземпляр XMLSignatureFactory, KeyInfoFactory, или TransformService. Механизм идентифицирует XML, обрабатывающий механизм, который реализация использует внутренне, чтобы проанализировать и генерировать структуры KeyInfo и XML-подпись. Кроме того, отметьте что каждый TransformService экземпляр поддерживает определенный алгоритм преобразования в дополнение к механизму. Стандартные имена для алгоритмов преобразования определяются в следующем разделе.

Механизм Описание
ДОМ Объектная модель документа. См. Требования ДОМА Мечанисма для дополнительных требований для реализаций ДОМА.

XML-подпись Преобразовывает (TransformService) Алгоритмы

Алгоритмы в этом разделе могут быть определены, генерируя экземпляр TransformService. Отметьте, что URI определяются вместо имен, чтобы быть непротиворечивыми со стандартом XML-подписи. Константы API были определены для каждого из этих URI, и они перечисляются в круглых скобках после каждого URI в таблице, которая следует.

URI алгоритма Описание
http://www.w3.org/TR/2001/REC-xml-c14n-20010315 (CanonicalizationMethod.INCLUSIVE) Канонический XML (без комментариев) алгоритм канонизации.
http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments (CanonicalizationMethod.INCLUSIVE_WITH_COMMENTS) Канонический XML с алгоритмом канонизации комментариев.
http://www.w3.org/2001/10/xml-exc-c14n# (CanonicalizationMethod.EXCLUSIVE) Монопольный Канонический XML (без комментариев) алгоритм канонизации.
http://www.w3.org/2001/10/xml-exc-c14n#WithComments (CanonicalizationMethod.EXCLUSIVE_WITH_COMMENTS) Монопольный Канонический XML с алгоритмом канонизации комментариев.
http://www.w3.org/2000/09/xmldsig#base64 (Transform.BASE64) Base64 преобразовывают алгоритм.
http://www.w3.org/2000/09/xmldsig#enveloped-signature (Transform.ENVELOPED) Окутанная Подпись преобразовывает алгоритм.
http://www.w3.org/TR/1999/REC-xpath-19991116 (Transform.XPATH) XPath преобразовывает алгоритм.
http://www.w3.org/2002/06/xmldsig-filter2 (Transform.XPATH2) Фильтр XPath 2 преобразовывает алгоритм.
http://www.w3.org/TR/1999/REC-xslt-19991116 (Transform.XSLT) XSLT преобразовывают алгоритм.

Имена Комплекта Шифра JSSE

Следующий список содержит стандартные имена комплекта шифра JSSE. В течение долгого времени различные группы добавили дополнительные комплекты шифра к пространству имен SSL/TLS. Некоторые имена комплекта шифра JSSE были определены прежде, чем TLSv1.0 был завершен, и был поэтому дан SSL_ префикс. Имена, упомянутые в TLS RFCs, снабженный префиксом TLS_ функционально эквивалентны комплектам шифра JSSE, снабженным префиксом SSL_.

* TLS_EMPTY_RENEGOTIATION_INFO_SCSV новый комплект псевдошифра, чтобы поддерживать RFC 5746. Считайте Безопасность Транспортного уровня (TLS) раздел Проблемы Пересмотра Справочника JSEE для получения дополнительной информации.

Дополнительные Стандартные имена JSSE

keyType параметр, который передают к chooseClientAlias, chooseServerAlias, getClientAliases, и getServerAliases методы X509KeyManager определяет типы с открытым ключом. Каждая строка таблицы, которая следует за списками стандартное имя, которое должно использоваться для keyType, учитывая указанный тип сертификата.

Имя Тип сертификата
RSA RSA
DSA DSA
DH_RSA Diffie-Hellman с подписью RSA
DH_DSA Diffie-Hellman с подписью DSA
EC Эллиптическая кривая
EC_EC Эллиптическая кривая с подписью ECDSA
EC_RSA Эллиптическая кривая с подписью RSA

protocols параметр, который передают к setEnabledProtocols метод SSLSocket определяет версии протокола, которые будут включены для использования на соединении. Таблица, которая следует за списками стандартные имена, к которым можно передать setEnabledProtocols или это может быть возвращено SSLSocket getSupportedProtocols и getEnabledProtocols методы.

Имя Протокол
SSLv2 Протокол версии 2 SSL
SSLv3 Протокол версии 3 SSL
TLSv1 Протокол версии 1.0 TLS (определенный в RFC 2246)
TLSv1.1 Протокол версии 1.1 TLS (определенный в RFC 4346)
TLSv1.2 Протокол версии 1.2 TLS (определенный в RFC 5246)
SSLv2Hello В настоящий момент SSLv3, TLSv1, и протоколы TLSv1.1 позволяют Вам отправлять SSLv3, TLSv1, и TLSv1.1 hellos инкапсулировавший в формате SSLv2 привет. Для получения дополнительной информации на причинах разрешения этой совместимости в этих протоколах, см. Приложение E в соответствующем RFCs (ранее перечисленный).

Отметьте, что некоторые серверы SSL/TLS не поддерживают v2, привет форматируют и требуют, чтобы клиент hellos соответствовал SSLv3, или клиент TLSv1 привет форматирует.

Опция SSLv2Hello управляет инкапсуляцией SSLv2. Если SSLv2Hello будет отключен на клиенте, то все исходящие сообщения будут соответствовать клиенту SSLv3/TLSv1, привет форматируют. Если SSLv2Hello отключается на сервере, то все входящие сообщения должны соответствовать клиенту SSLv3/TLSv1, привет форматируют.

authType параметр, который передают к checkClientTrusted и checkServerTrusted методы X509TrustManager указывает на тип аутентификации. Таблица, которая следует, определяет, какие стандартные имена должны использоваться для клиента или цепочек сертификата сервера.

Клиент или Цепочка Сертификата Сервера Стандартное имя Типа аутентификации
Клиент Определенный фактическим сертификатом используется. Например, если RSAPublicKey используется, authType должен быть "RSA".
Сервер Ключевая часть алгоритма обмена комплектов шифра, представленных как Строка, таких как "RSA" или "DHE_DSS". Отметьте: Для некоторых экспортных комплектов шифра ключевой алгоритм обмена определяется во времени выполнения во время квитирования. Например, для TLS_RSA_EXPORT_WITH_RC4_40_MD5, authType должен быть "RSA_EXPORT", когда эфемерный ключ RSA используется для ключевого обмена, и "RSA", когда ключ от сертификата сервера используется. Или это может принять "НЕИЗВЕСТНОЕ" значение.

Java SE 7 выпусков поддерживает алгоритмы идентификации конечной точки для TLS 1.2. Имя алгоритма можно передать к setEndpointIdentificationAlgorithm() метод javax.net.ssl.SSLParameters. Следующая таблица показывает в настоящий момент распознанные имена.

Идентификация конечной точки
Имя алгоритма
Спецификация
HTTPS http://www.ietf.org/rfc/rfc2818.txt
LDAPS http://www.ietf.org/rfc/rfc2830.txt

Алгоритмы

Этот раздел определяет детали относительно некоторых из алгоритмов, определенных в этом документе. Любой провайдер, предоставляющий реализацию перечисленных алгоритмов, должен выполнить спецификации в этом разделе.

Чтобы добавить новый алгоритм, не определенный здесь, следует сначала рассмотреть других людей или компании, предоставляющие пакеты провайдера, чтобы видеть, добавили ли они уже, что алгоритм, и, если так, использует определения, которые они опубликовали при наличии. Иначе, следует создать и сделать доступным шаблон, подобный найденным в этом разделе, со спецификациями для алгоритма, который Вы обеспечиваете.

Шаблон спецификации

Следующая таблица показывает поля спецификаций алгоритма.

Поле Описание
Имя Имя, которым известен алгоритм. Это - имя, которое передают к getInstance метод (запрашивая алгоритм), и возвратился getAlgorithm метод, чтобы определить имя существующего объекта алгоритма. Эти методы находятся в соответствующих классах механизма: Signature, MessageDigest, KeyPairGenerator, и AlgorithmParameterGenerator .
Ввести Тип алгоритма: Signature, MessageDigest, KeyPairGenerator, или ParameterGenerator.
Описание Общие сведения об алгоритме, включая любые стандарты, реализованные алгоритмом, применимыми патентами, и так далее.
KeyPair (Дополнительный) алгоритм Алгоритм пары ключей для этого алгоритма.
(Дополнительный) размер ключа Для включенного алгоритма или алгоритма генерации ключей: допустимые размеры ключа.

(Дополнительный) размер

Для алгоритма генерации параметра алгоритма: допустимые "размеры" для генерации параметра алгоритма.

(Дополнительные) Значения по умолчанию параметра

Для алгоритма генерации ключей: значения параметра значения по умолчанию.

Signature (Дополнительный) формат

Для a Signature алгоритм, формат подписи, то есть, ввода и вывода проверения и методов знака, соответственно.

Спецификации алгоритма

SHA 1 Алгоритм Обзора сообщения

Поле Описание
Имя SHA 1
Ввести MessageDigest
Описание Алгоритм обзора сообщения как определено в FIPS NIST 180-2. Вывод этого алгоритма является 160-разрядным обзором.

MD2 передают Алгоритм Обзора

Поле Описание
Имя MD2
 Ввести MessageDigest
Описание Алгоритм обзора сообщения как определено в RFC 1319. Вывод этого алгоритма является 128-разрядным (16-байтовым) обзором.

MD5 передают Алгоритм Обзора

Поле Описание
Имя MD5
Ввести MessageDigest
Описание Алгоритм обзора сообщения как определено в RFC 1321. Вывод этого алгоритма является 128-разрядным (16-байтовым) обзором.

Алгоритм цифровой подписи

Поле Описание
Имя SHA1withDSA
Ввести Signature
Описание Этот алгоритм является алгоритмом подписи, описанным в NIST FIPS 186, используя DSA с SHA 1 алгоритм обзора сообщения.
KeyPair Алгоритм DSA
Формат подписи Последовательность ASN.1 двух Целочисленных значений: r и s, в том порядке:
SEQUENCE ::= { r INTEGER, s INTEGER }

RSA-на-основе Алгоритмы Подписи, с MD2, MD5 или SHA 1

Поле Описание
Имена MD2withRSA, MD5withRSA и SHA1withRSA
Ввести Signature
Описание Они - алгоритмы подписи, которые используют MD2, MD5, и SHA 1 алгоритм обзора сообщения (соответственно) с шифрованием RSA.
KeyPair Алгоритм RSA
Формат подписи DER-закодированные PKCS1 блокируют как определено в Лабораториях RSA, PKCS #1. Зашифрованные данные являются обзором подписанных данных.

DSA Алгоритм Генерации KeyPair

Поле Описание
Имя DSA
Ввести KeyPairGenerator
Описание Этот алгоритм является алгоритмом генерации пары ключей описанный NIST FIPS 186 для DSA.
Размер ключа Длина, в битах, модуля p. Это должно колебаться от 512 до 1024, и должно быть кратным числом 64. Размер ключа значения по умолчанию 1024.
Значения по умолчанию параметра

Следующие значения параметра значения по умолчанию используются для размеров ключа 512, 768, и 1024 бита:

512-разрядные Основные параметры

SEED = b869c82b 35d70e1b 1ff91b28 e37a62ec dc34409b
counter = 123
p = fca682ce 8e12caba 26efccf7 110e526d b078b05e decbcd1e b4a208f3
    ae1617ae 01f35b91 a47e6df6 3413c5e1 2ed0899b cd132acd 50d99151
    bdc43ee7 37592e17
q = 962eddcc 369cba8e bb260ee6 b6a126d9 346e38c5

g = 678471b2 7a9cf44e e91a49c5 147db1a9 aaf244f0 5a434d64 86931d2d
    14271b9e 35030b71 fd73da17 9069b32e 2935630e 1c206235 4d0da20a
    6c416e50 be794ca4

768-разрядные основные параметры

SEED = 77d0f8c4 dad15eb8 c4f2f8d6 726cefd9 6d5bb399
counter = 263
p = e9e64259 9d355f37 c97ffd35 67120b8e 25c9cd43 e927b3a9 670fbec5
    d8901419 22d2c3b3 ad248009 3799869d 1e846aab 49fab0ad 26d2ce6a
    22219d47 0bce7d77 7d4a21fb e9c270b5 7f607002 f3cef839 3694cf45
    ee3688c1 1a8c56ab 127a3daf
q = 9cdbd84c 9f1ac2f3 8d0f80f4 2ab952e7 338bf511
g = 30470ad5 a005fb14 ce2d9dcd 87e38bc7 d1b1c5fa cbaecbe9 5f190aa7
    a31d23c4 dbbcbe06 17454440 1a5b2c02 0965d8c2 bd2171d3 66844577
    1f74ba08 4d2029d8 3c1c1585 47f3a9f1 a2715be2 3d51ae4d 3e5a1f6a
    7064f316 933a346d 3f529252

1024-разрядные основные параметры

SEED = 8d515589 4229d5e6 89ee01e6 018a237e 2cae64cd
counter = 92
p = fd7f5381 1d751229 52df4a9c 2eece4e7 f611b752 3cef4400 c31e3f80
    b6512669 455d4022 51fb593d 8d58fabf c5f5ba30 f6cb9b55 6cd7813b
    801d346f f26660b7 6b9950a5 a49f9fe8 047b1022 c24fbba9 d7feb7c6
    1bf83b57 e7c6a8a6 150f04fb 83f6d3c5 1ec30235 54135a16 9132f675
    f3ae2b61 d72aeff2 2203199d d14801c7
q = 9760508f 15230bcc b292b982 a2eb840b f0581cf5

g = f7e1a085 d69b3dde cbbcab5c 36b857b9 7994afbb fa3aea82 f9574c0b
    3d078267 5159578e bad4594f e6710710 8180b449 167123e8 4c281613
    b7cf0932 8cc8a6e1 3c167a8b 547c8d28 e0a3ae1e 2bb3a675 916ea37f
    0bfa2135 62f1fb62 7a01243b cca4f1be a8519089 a883dfe1 5ae59f06
    928b665e 807b5525 64014c3b fecf492a

RSA Алгоритм Генерации KeyPair

Поле Описание
Имена RSA
Ввести KeyPairGenerator
Описание Этот алгоритм является алгоритмом генерации пары ключей, описанным в PKCS #1.
Сила Любое целое число, которое является кратным числом 8, больше чем или равный 512.

Алгоритм Генерации Параметра DSA

Поле Описание
Имена DSA
Ввести ParameterGenerator
Описание Этот алгоритм является алгоритмом генерации параметра, описанным в NIST FIPS 186 для DSA.
Сила Длина, в битах, модуля p. Это должно колебаться от 512 до 1024, и должно быть кратным числом 64. Размер значения по умолчанию 1024.


Требования реализации

Этот раздел определяет требования алгоритма безопасности для Java SE 7 реализаций. Эти требования предназначаются, чтобы улучшить функциональную совместимость Java SE 7 реализаций и приложения, которые используют эти алгоритмы.

Отметьте, что требования в этом разделе не являются мерой силы или безопасностью алгоритма. Например, недавние усовершенствования в криптоанализе нашли слабые места в силе алгоритма MessageDigest MD5. Это - Ваша обязанность определить, встречает ли алгоритм требования к защите Вашего приложения.

Каждая реализация Java SE, 7 платформ должны поддерживать указанные алгоритмы в таблице, которая следует. Эти требования не применяются к 3-ьим провайдерам стороны. Консультируйтесь с документацией выпуска для своей реализации, чтобы видеть, поддерживаются ли какие-либо другие алгоритмы.

Класс Имя (ена) алгоритма
AlgorithmParameterGenerator
Реализации должны поддерживать размеры ключа в круглых скобках.
DiffieHellman (1024)
DSA (1024)
AlgorithmParameters AES
DES
DESede
DiffieHellman
DSA
CertificateFactory X.509
CertPath Кодировки PKCS7
PkiPath
CertPathBuilder PKIX
CertPathValidator PKIX
CertStore Набор
Cipher
Алгоритмы определяются как преобразования. Реализации должны поддерживать размеры ключа в круглых скобках.
AES/CBC/NoPadding (128)
AES/CBC/PKCS5Padding (128)
AES/ECB/NoPadding (128)
AES/ECB/PKCS5Padding (128)
DES/CBC/NoPadding (56)
DES/CBC/PKCS5Padding (56)
DES/ECB/NoPadding (56)
DES/ECB/PKCS5Padding (56)
DESede/CBC/NoPadding (168)
DESede/CBC/PKCS5Padding (168)
DESede/ECB/NoPadding (168)
DESede/ECB/PKCS5Padding (168)
RSA/ECB/PKCS1Padding (1024, 2048)
RSA/ECB/OAEPWithSHA-1AndMGF1Padding (1024, 2048)
RSA/ECB/OAEPWithSHA-256AndMGF1Padding (1024, 2048)
Configuration [1]
KeyAgreement DiffieHellman
KeyFactory DiffieHellman
DSA
RSA
KeyGenerator
Реализации должны поддерживать размеры ключа в круглых скобках.
AES (128)
DES (56)
DESede (168)
HmacSHA1
HmacSHA256
KeyPairGenerator
Реализации должны поддерживать размеры ключа в круглых скобках.
DiffieHellman (1024)
DSA (1024)
RSA (1024, 2048)
KeyStore PKCS12
Mac HmacMD5
HmacSHA1
HmacSHA256
MessageDigest MD5
SHA 1
SHA 256
Policy [1]
SecretKeyFactory DES
DESede
SecureRandom [1]
Signature SHA1withDSA
SHA1withRSA
SHA256withRSA
SSLContext TLSv1 [2]

[1] Нет определенный Configuration введите, Policy введите или SecureRandom алгоритм требуется; однако, специфичное для реализации значение по умолчанию должно быть обеспечено.

[2] Реализация TLSv1 должна поддерживать комплект шифра SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA как определено в RFC 2246 и специальном сигнальном комплекте шифра TLS_EMPTY_RENEGOTIATION_INFO_SCSV для безопасного пересмотра как определено в RFC 5746.

Алгоритмы XML-подписи

Каждая реализация Java SE, 7 платформ должны поддерживать указанные алгоритмы XML-подписи в таблице, которая следует. Эти требования не применяются к 3-ьим провайдерам стороны. Консультируйтесь с документацией выпуска для своей реализации, чтобы видеть, поддерживаются ли какие-либо другие алгоритмы.

Класс Имя (ена) алгоритма
TransformService http://www.w3.org/2001/10/xml-exc-c14n# (CanonicalizationMethod.EXCLUSIVE)
http://www.w3.org/TR/2001/REC-xml-c14n-20010315 (CanonicalizationMethod.INCLUSIVE)
http://www.w3.org/2000/09/xmldsig#base64 (Transform.BASE64)
http://www.w3.org/2000/09/xmldsig#enveloped-signature (Transform.ENVELOPED)
XMLSignatureFactory ДОМ

Oracle и/или его филиалы Авторское право © 1993, 2012, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами