/ / Jak przyspieszyć szyfrowanie / deszyfrowanie karty Java (RSA) - wydajność, szyfrowanie, RSA, javacard

Jak przyspieszyć szyfrowanie / deszyfrowanie karty Java (RSA) - wydajność, szyfrowanie, RSA, javacard

Już opracowałem aplet karty Java.używa RSA do szyfrowania. Więc chcę wiedzieć, czy istnieje sposób na przyspieszenie szyfrowania / odszyfrowywania RSA w karcie Java. Powodem jest to, że kiedy użyłem RSA 2048 zajmuje to trochę więcej czasu niż RSA 512 lub 1024.

Dzięki SSV

Odpowiedzi:

5 dla odpowiedzi № 1

RSA jest z natury powolne i zmniejsza się, gdy używasz większych długości kluczy. Są jednak rzeczy, które możesz zrobić, aby przyspieszyć operacje RSA:

  • Użyj klucza publicznego z publicznym wykładnikiem, dla którego ustawiono kilka bitów 1, np. czwarta liczba Fermata, 65537. Zauważ, że są pewne ataki, które można wykonać na publicznym wykładniku o wartości 3. To tylko przyspiesza operacje na kluczach publicznych.
  • użyć RSAPrivateCrtKey która obejmuje parametry, które mogą być użyte do obliczeń przy użyciu chińskiego twierdzenia o pozostałym. Przyspiesza to tylko operacje na klucz prywatny.

Jeśli już wygenerowałeś parę kluczy wkarty, jest szansa, że ​​obie opcje zostały już zniesione przez chip. W takim przypadku przestrzeń rozwiązania może być pusta. Jedyne, co możesz wtedy zrobić, to przełączyć się na kryptografię eliptyczną Curve (ale nawet to może być wolniejsze dla operacji z kluczem publicznym) lub inny protokół z wykorzystaniem algorytmów symetrycznych.