Если вы жестко закодируете свой вектор инициализации и введете ключ в DLL, тогда вы действительно можете вообще отказаться от шифрования. Если бы вы могли рассказать нам немного больше о причине, по которой вы используете шифрование, и о том, как именно необходимо получить доступ к данным, возможно, я могу подсказать, как вы можете обеспечить их безопасность.
РЕДАКТИРОВАТЬ: Возможно, вы захотите использовать шифрование с открытым ключом для этой цели (в частности, алгоритм RSA, поскольку он известен как безопасный и полностью реализован в .NET Framework). Это асимметрично, что означает, что для шифрования (общедоступных) и дешифрования (приватных) данных требуется другой ключ. Хотя я до сих пор не совсем уверен, как работает ваша система, я подозреваю, что вам просто нужно ограничить доступ к закрытому ключу только теми людьми, которые могут просматривать информацию базы данных - вы, конечно, не хотите хранить ее на то же место, что и база данных. Открытый ключ, по сути, может быть предоставлен любому, так как он позволяет просто зашифровать данные для помещения в базу данных (при условии, что доступ для записи в базу данных должным образом ограничен). В любом случае, вот несколько ссылок, с которых можно начать:
Надеюсь, это поможет.