Категорически не советовал бы реализовывать данный вариант защиты.
Во первых, запись в ключ будет контролируема, до вызова GuardantAPI, где уже есть возможность изменить значение.
Во вторых, может произойти потеря сессии, в случае, когда ключ изымут из порта перед попыткой записи.
В третьих - не нужно светить пароли на запись в ключ (это конечно не мастер пароль, но все-же).
В самом простом приближении воспользуйтесь предлагаемой SDK криптографией с привязкой к ID ключа, а для рандомизации, GP счетчиком 0х6 оффсет UAM, который будет декрементировать при каждом обращении к "критическому участку кода".
Сами данные храните там где вам удобно.
В четвертых, есть еще конечно вариант с Guardant Code - ключ, конечно, немного дороговат, но там есть много приятностей, одной из которых является отсутствие лимита на 1 миллион перезаписей (ресурс гораздо выше, правда не во все области памяти). А другой приятностью, является то, что мы можем принимать данные из софтверного блэкбокса, реализуемого в приложении (к примеру закрытого виртальной машиной) и спокойно их расшифровывать непосредственно в ключе, где и принимать решение - как именно и где будем их хранить - во внешней FLASH или внутри защищенного блока (там тоже есть нюансы, но грубо как-то так).
В итоге - я бы посоветовал остановиться на промежуточном варианте решения (через доступные криптоапи из SDK), правда сам использую последний вариант, ибо он мне более удобен, с учетом почти 9 летнего варианта работы с промежуточным :)