#java #cryptography #rsa #bouncycastle
#java #криптография #rsa #баунсикасл
Вопрос:
Мне нужна помощь в использовании библиотек Bouncy Castle RSA для школьного задания, но это выглядит очень сложно, и я пытаюсь учиться и нуждаюсь в некотором руководстве.
Для моего задания мне нужно просто сгенерировать открытый и закрытый ключи. Затем зашифруйте блок сообщения и выполните измерения времени. Затем проделайте то же самое для расшифровки.
Может ли кто-нибудь указать мне правильное направление? Криптобиблиотека огромна, и я не знаю, как это сделать.
Большое вам спасибо.
PS: В основном мне нужно сгенерировать пары ключей, выполнить шифрование и дешифрование, используя разные пары ключей, которые генерируются случайным образом.
Я бы оценил любое руководство, спасибо
Комментарии:
1. Вам обязательно нужно использовать Надувной замок? поскольку я бы рекомендовал GNU Crypto, его проще изучать и управлять, а в Google есть множество руководств
2. Вы должны использовать Надувной замок? Учитывая ваши требования, стандартные библиотеки Java также должны работать. Пожалуйста, добавьте тег «домашнее задание».
3. Отсутствие надувного замка не является обязательным требованием. Является ли GNU Crypto для Java? Java вроде как требуется, потому что члены моей команды не знают C / C или скриптовых языков, таких как Python. Также спасибо за ответ. Также я добавил тег «Домашнее задание», приношу свои извинения.
4. Вы взглянули на это ? Возможно, это все, что вам нужно…
5. @home Спасибо тебе. Это выглядит более удобным для работы для такого новичка, как я. Я очень ценю вашу помощь.
Ответ №1:
Обычно в Java вы должны использовать API-интерфейсы Java Cryptography в java.security.*
javax.crypto.*
пакетах и .
BouncyCastle включает в себя поставщика (то есть реализацию) для этого API, но для RSA тот, который поставляется с вашим JRE, тоже должен быть в порядке. (BouncyCastle дополнительно также имеет собственный API, который выполняет другие действия.)
Вам понадобятся KeyPair
KeyPairGenerator
классы and для генерации ключа и Cipher
класс для фактической операции шифрования и дешифрования.
Для измерения времени повторите шифрование / дешифрование несколько тысяч раз, чтобы получить надежные данные.
Комментарии:
1. Спасибо, это мне очень помогает. Также у меня есть вопрос, когда я использую KeyPairGenerator kpg = KeyPairGenerator.getInstance(«RSA»); я получаю необработанное исключение типа NoSuchAAlgorithmException
2. Прочитайте об обработке исключений — это не относится к криптографии. Вам нужно либо перехватить эти исключения в блоке try, либо объявить их в предложении throws вашего метода (а затем перехватить их в другом месте). Но почитайте какую-нибудь книгу по Java об этом, этот комментарий является сокращением для подробного описания обработки исключений.