Po przeczytaniu artykułów o metodach kryptograficznych (symetrycznych i asymetrycznych). Wiele artykułów mówi, że klucz prywatny jest używany do szyfrowania i odszyfrowywania danych. Klucz publiczny służy do szyfrowania danych. Ale kiedy Próbuję rozpocząć wdrażanie w Javie Nie mogę używać klucza prywatnego do szyfrowania i odszyfrowywania danych (używam algorytmu RSA)? Jeśli to możliwe, podaj mi link. Jeśli nie obsługuje, proszę odpowiedzieć, dlaczego nie obsługuje?Szyfrowanie i odszyfrowywanie za pomocą klucza prywatnego w języku Java
// Szyfrowanie
Cipher encrypt=Cipher.getInstance("RSA");
encrypt.init(Cipher.ENCRYPT_MODE, privatekey);
byte[] encryptedMessage=encrypt.doFinal(msg.getBytes());
// Deszyfruj
Cipher decrypt=Cipher.getInstance("RSA");
decrypt.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptedMessage=decrypt.doFinal(encryptedMessage);
nie jest podpisywanie kryptograficznych szyfrowania z kluczem prywatnym? –
@PeterBecker Lepiej nie myśleć o tym w ten sposób. Sprawdź [RFC 3447 część 5.2] (http://tools.ietf.org/html/rfc3447#page-12): "... Główna operacja matematyczna w każdym prymitymie jest potęgowaniem, jak w prymitywach szyfrowania i deszyfrowania Sekcja 5.1 RSASP1 i RSAVP1 są takie same jak RSADP i RSAEP, z wyjątkiem nazw ich argumentów wejściowych i wyjściowych, są one rozróżniane, ponieważ są one przeznaczone do różnych celów: ". Dotyczy to tylko "podręcznika" lub "surowego" RSA, który nie nadaje się do normalnych celów kryptograficznych. Obicie jest integralną częścią schematu i różni się. –
Punkt wzięty. Naprawdę znalazłem złamany schemat kryptograficzny, gdy użyty został czysty RSA (problem jeden) i dwa klucze zostały użyte w niewłaściwy sposób. Bouncy Castle pozwala ci to zrobić, a potem cicho zmienia dopełnienie, co w tym przypadku nie oznacza randomizacji szyfrowania. –