Não há muito o que fazer nessa situação - se o seu programa pode descriptografar a chave do arquivo, e este programa é executado no computador do cliente, o cliente pode passar pelo programa, desmontá-lo e localizar exatamente como descriptografa a chave - para não mencionar encontrá-lo na memória. Eu não sou especialista nisso, mas módulos de TPM foram criados para ajudar a lidar com esse problema - eles são supostamente protegidos do adulteração de clientes, mas como Scott Chamberlain mencionou, torna-se uma questão de como obter a chave de forma segura no TPM se você precisa de uma chave específica.