2011-02-06 2 views
-1

не распространяется распределение ключей, общедоступные и закрытые ключи будут известны (генератор случайных ключей не будет использоваться). Я должен зашифровать хешированное сообщение с закрытым ключом, чтобы обеспечить подпись. Сообщение будет содержать только 10-20 символов, поэтому система может быть настолько простой, насколько это возможнокак шифровать и расшифровывать сообщение с помощью RSA с сигнатурой в android

+0

Я знаю, что прошло 5 лет, но я понятия не имею, в чем вопрос. :( –

ответ

2

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

Если вы ищете конфиденциальность, RSA не подходит: используйте RSA для создания частной/общедоступной пары, а затем используйте их для ключей excahnge - или замените ключи вне диапазона. Используйте алгоритм потоковой передачи, такой как AES, для шифрования сообщения.

Если вы просто хотите, чтобы подпись показала сообщение, авторство было связано с тем, кто вы так считаете, а затем посмотрите на цифровую подпись Wiki article - это достаточно просто.

+0

«потоковый алгоритм, такой как AES». Я считаю, что формулировка немного вводит в заблуждение, поскольку AES является блочным-шифром, а не потоковым шифром. – CodesInChaos

+0

Он сказал, что подпись в вопросе. –

+0

он также сказал: «Зашифровать хэшированное сообщение с помощью закрытого ключа " –

1

Для создания цифровой подписи вам не нужно шифровать хэш. Подписание - это отдельный крипто-примитив; хэш не зашифрован в любом случае, есть некоторые дополнения. При этом код:

Signature Signer = Signature.getInstance("SHA1withRSA"); 
Signer.initSign(MyKey, new SecureRandom()); //Where do you get the key? 
byte []Message = MyMessage(); //Initialize somehow 
Signer.update(Message, 0, Message.length); 
byte [] Signature = Sign.sign(); 
+0

Спасибо за ответы В моем проект, я должен использовать RSA, согласно моему протоколу безопасности, который одобрен моим руководителем, я должен сделать это: A-> BE (PUBb, [M, E (PRIa, H (M)]) 1. B должен быть уверен, что сообщение пришло из A (по ссылке: H (M) зашифровано PRIa, поэтому только A может быть зашифровано) 2. Только B должен иметь возможность прочитайте это сообщение; целое сообщение, зашифрованное PUBb, поэтому только B может расшифровать его своим личным ключом – halilenver

+0

, можете ли вы мне помочь сейчас, как это сделать в java (для android)? – halilenver

Смежные вопросы