Программно-реализованные алгоритмы.

Расскажите, пожалуйста, про программно-реализованные алгоритмы, а то в документации они упомянуты как-то вскользь.
Нужно ли создавать хендл?
Нужно ли вводить в этот хэндл коды (если нужно, то какие)?
Нужно ли логиниться к электронному ключу, или наличие ключа вообще не требуется?

И в чем принципиальная разница между функциями GrdCrypt(Ex) и GrdTransform(Ex)?

Re: Программно-реализованные алгоритмы.

Добрый день, Reboot.

Reboot пишет:

Расскажите, пожалуйста, про программно-реализованные алгоритмы, а то в документации они упомянуты как-то вскользь.

Принципы и правила работы с программно реализованным алгоритмом AES256 в основном такие же, как и для аппаратных алгоритмов за исключением некоторых моментов:

Reboot пишет:

Нужно ли создавать хендл?

1)    Да, необходимо инициализировать Guardant API (функция - GrdStartup) и создать хэндл (функция – GrdCreateHandle).

Reboot пишет:

Нужно ли вводить в этот хэндл коды (если нужно, то какие)?
Нужно ли логиниться к электронному ключу, или наличие ключа вообще не требуется?

2)    Нет, при использовании программного алгоритма коды доступа не нужны и соответственно логиниться к электронному ключу не нужно.
3)    При вызове функции GrdCrypt/GrdCryptEx в качестве параметра dwAlgo нужно указывать GrdSC_AES256.

Отдельно хотелось бы отметить тот факт, что Guardant API естественно в основном ориентированно на работу и взаимодействие с электронными ключами Guardant.
Программно-реализованный алгоритм необходим в большей степени для шифрования больших объемов данных и, как правило, предполагает работу в некой связке с ключом и аппаратными алгоритмами (например, программным алгоритмом выполняется шифрования данных большого объема (от десятков килобайт до сотен мегабайт) а на аппаратном выполняется шифрование ключа программного алгоритма).
Использование только программного алгоритма без электронного ключа не несет в себе большого смысла как защита для приложения, с одинаковым успехом можно использовать и другие, сторонние разработки программных алгоритмов шифрования.

Reboot пишет:

И в чем принципиальная разница между функциями GrdCrypt(Ex) и GrdTransform(Ex)?

Основная разница заключается в том, что GrdCryptEx является оберткой для GrdTransformEx позволяющей работать с программно реализованным алгоритмом, если при вызове GrdCryptEx в параметре dwAlgo указан номер аппаратного алгоритма, то вызов передается в GrdTransformEx.
Подробно все API функции описаны в нашей Справочной системе по Guardant API.

Re: Программно-реализованные алгоритмы.

Я так понимаю, программно реализованный алгоритм AES256 из GrdAPI работает идентично аппаратному алгоритму  AES256, прошитому в ключ Guardant. А также идентично любой сторонней реализации (программной или аппаратной) алгоритма AES256.

Но у аппаратного алгоритма  AES256, прошитого в ключ Guardant, есть фишка - зависимость от ID. Можно ли это поведение воспроизвести с помощью программно реализованного алгоритма AES256?

И можно ли программно реализованные алгоритмы AES256 и SHA использовать в функциях GrdTRU: DecryptQuestionEx() и EncryptAnswerEx()? Чтобы не возиться с подключением ключа и полным перезаписыванием его перед каждым дистанционным обновлением?

Re: Программно-реализованные алгоритмы.

В ключах нет аппаратного алгоритма AES256

Re: Программно-реализованные алгоритмы.

romik пишет:

В ключах нет аппаратного алгоритма AES256

Сорри, ошибся. Имелся в виду AES128

Re: Программно-реализованные алгоритмы.

Luck пишет:

Но у аппаратного алгоритма  AES256, прошитого в ключ Guardant, есть фишка - зависимость от ID. Можно ли это поведение воспроизвести с помощью программно реализованного алгоритма AES256?
И можно ли программно реализованные алгоритмы AES256 и SHA использовать в функциях GrdTRU: DecryptQuestionEx() и EncryptAnswerEx()? Чтобы не возиться с подключением ключа и полным перезаписыванием его перед каждым дистанционным обновлением?

Нет, для программно реализованного алгоритма данные функции недоступны.