Вы совершенно правы, симметричные алгоритмы шифрования в классических электронных ключах не могут использоваться для сокрытия данных от злоумышленника - такой задачи и не преследуется. Цель использования алгоритмов шифрования в ключе - максимально затруднить хакеру задачу "отучивания" приложения от ключа. В зависимости от того, насколько сложной, хитрой и запутанной вы сделали процедуру общения приложения с ключом, в скольких местах вы предварительно зашифровали данные, в каких случах и в какой момент вы их расшифровываете - злоумышленнику может понадобиться очень много времени для того, чтобы вооружившись отладчиком и дизассемблером найти все места общения с ключом, найти все зашифрованные данные, все расшифровать, и т.п.
В этом плане использование современных ключей поколения Sign позволяет усилить защиту еще больше: можно использовать алгоритм цифровой подписи, тогда не нужно заранее готовить таблицы вопросов-ответов как с симметричными алгоритмами. Весь канал передачи от приложения к ключу зашифрован на сеансовых ключах (т.е. простая табличная эмуляция тоже невозможна).
Есть, конечно, и исключения из этого правила. При помощи ключей Code можно реализовать и классическую схему использования симметричного алгоритма: вы предварительно зашифровываете какие то секретные данные, помещаете их в приложение, а процедуру обработки этих данных помещаете в ключе Code. Тогда у вас есть 2 пользователя, и зашифрованный канал данных по которым идет зашифрованное же сообщение.
Вариант использования симметричных алгоритмов для шифрования секретных данных без использования ключей Code тоже существует: если защищенное приложение обработать псевдокодом Guardant Online, то расшифрованные данные при получении от ключа обнаружить будет гораздо сложнее (подробнее о том как работает технология можно почитать на online.guardant.ru). Накрытие псевдокодом какой либо процедуры фактически помещает ее в программный черный ящик (аналогично переносу в Code).