2013-07-19 3 views
2

Я уже разработал java-карту applet.it, используя RSA для шифрования. Поэтому я хочу знать, есть ли способ ускорить шифрование/дешифрование RSA в java-карте. причина в том, когда я использовал RSA 2048 требуется некоторое дополнительное время, чем RSA 512 или 1024.Как ускорить шифрование/расшифровку java-карты (RSA)

Благодарность SSV

ответ

5

RSA является по своей сути медленно, и становится медленнее, когда вы используете большие длины ключа. Есть, однако, что вы можете сделать, чтобы ускорить RSA операции:

  • Использование открытого ключа с открытым показателем, который имеет несколько битов, установленных в 1, например, четвертое число Fermat, 65537. Обратите внимание, что есть некоторые атаки, которые могут быть выполнены для публичного экспонента со значением 3. Это только ускоряет операции открытого ключа.
  • использует параметр RSAPrivateCrtKey, который включает параметры, которые могут использоваться для расчетов с использованием китайской теоремы останова. Это ускоряет операции с закрытым ключом.

Если вы уже создали пару ключей на карте, скорее всего, оба параметра уже были подняты чипом. В этом случае пространство решений может быть пустым. Единственное, что вы можете сделать, это переключиться на криптографию Elliptic Curve (но даже это может быть медленнее для операций с открытым ключом) или другой протокол с использованием симметричных алгоритмов.

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