2013-03-12 3 views
1

В настоящее время я работаю над проектом JavaCard (v.2.2.2), и мне нужно вычислить значения, используя квадратные корни, логарифмы и т.д. ...Математическая библиотека для JavaCard?

Я знаю, что Math класса не доступен в JavaCard API и интересно, существует ли другая библиотека, которая предоставляет такие операции?

А также я не могу использовать значения double, но мне нужно. Есть ли способ представить значение double в API JavaCard и выполнить операцию (например, журнал, sqrt и т. Д.)?

Любая помощь оценена!

+0

Я еще не наткнулся на такую ​​библиотеку. Конечно, вы можете сделать некоторые ограниченные трюки с помощью криптографического API (например, выполнить экспансионирование по RSA по модулю с использованием 2 в качестве открытого ключа и большого модуля для выполнения квадратов), но многие процессоры по-прежнему 8 бит, а сопроцессоры выполняют всю работу. В настоящее время вы можете получить 32-битные машины на чипах с высоким концом, но он остается ограниченной средой. –

+0

@MaartenBodewes Хороший трюк. Не могли бы вы изобразить его? (Пример) – Abraham

ответ

-1

Наконец, я использовал таблицы поиска и другие трюки, и это сработало просто отлично!

+1

Я рад, что у вас это работает, но это не ответ на ваш вопрос. Ответы должны быть полезны и для других пользователей этого форума. –

1

Javacard 2.2.2 поддерживает только булевы, байты, короткие и, необязательно, int. Если вам действительно нужно выполнить математику, тогда вам нужно создать свой собственный класс с помощью сложных способов, и, конечно, результат не является точным.

Наилучшая практика заключается в том, что карта хранит данные и выполняет простой расчет/шифрование, а сервер/терминал рассчитывает сложные вещи. Обходной путь для хранения двойной карты - использовать байтовый массив.

+0

Спасибо, но из соображений безопасности я должен все вычислить на карте. – neogenesis