Итак, у Java есть режим с именем RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING
. Что это значит?
RFC3447, Стандарты криптографии с открытым ключом (PKCS) # 1: Спецификации шифрования RSA Версия 2.1, раздел 7.1.2 Операция дешифрования говорит Hash и MGF - оба варианта для RSAES-OAEP-DECRYPT. MGF - это собственная функция, определенная в разделе B.2.1 MGF1, и которая также имеет собственную опцию Hash.
Возможно, опция "Хэш" в RSAES-OAEP-DECRYPT и MGF1 должна быть одинаковой или, может быть, нет, для меня это непонятно. Если они тогда, я думаю, когда у вас есть RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING
, значит, sha256 должен использоваться для обоих. Но если они не должны быть одинаковыми, вы можете использовать sha256 для RSAES-OAEP-DECRYPT и, например, sha1, используемый для MGF1. И если это случай, то какая функция sha256 должна использоваться? И какой хэш-алгоритм предполагается использовать для другой функции?
И что означает ECB в этом контексте? ECB является симметричным блочным шифровым режимом. Электронная кодовая книга. Может быть, это должно означать, что Java работает с открытым текстом, который больше, чем по модулю? Как, возможно, разделяет открытый текст на куски, которые являются такими же большими, как и по модулю, а затем шифрует каждый из них с помощью RSA и объединяет их вместе? Я просто догадываюсь.