Как правильно хранить ключ шифрования для десктопных приложений?
Пароли в принципе нельзя хранить, ни на диске, ни в памяти, ни к чему хорошему это не приводит. Даже мастер-пароли могут украсть во время их ввода и обработки. Но справедливости ради сервера хранят секретные ключи, чтобы мы могли к ним подключится с шифрованием. Они всего лишь уповают на разграничение привилегий операционной системой. Но если другая программа запущена с привилегиями Вашем программы или более высокими или злоумышленник имеет физический доступ к Вашему железу, то они могут прочесть все ваши секреты. Но на Windows или Android это разграничение бесполезно, на первой куча мусора исполняется с максимальными привилегиями, а на второй дыры не закрывают вообще и только самоё свежее железо в состоянии хранить секреты.
Безопасность это комплекс мер и простым действиями на уровне программы её не обеспечить.
Единственный надежный способ - это использовать мастер пароль. Если пароля нет, то любой способ шифрования можно отреверс-инженирить и расшифровать все сохраненные данные точно так же, как это делает сам продукт. Иногда даже разбираться не надо - можно просто выдрать нужные куски кода из продукта и запустить.

А с поролем - надо какой-то криптографически стойкой kdf-функцией преобразовать его в ключ шифрования и дальше применять хоть AES, хоть какой-то другой алгоритм шифрования.

Главное самостоятельно ничего криптографического не велосипедить. Берите популярные крипто-библиотеки и используйте стандратные и современные криптографические приметивы.

Тут, правда, есть проблема - если пользователь мастер пароль забудет - то сохраненные локально данные уже никак не достать. Можно полученный из пароля через KDF ключ как-то простенько зашифровать (или вообще в плейн тексте) и дополнительно выдать пользователю для сохранения на флешке и использовать для восставления пароля: если нет пароля, то ключ из файла применяется, потом данные шифруются с новым ключем, полученным из нового пользовательского пароля. Важно только убедить пользователя не хранить этот файл на том же компьютере. Если видите этот файл в папке с программой, на рабочем столе или в "моих документах" стоит отругать пользователя за пренебрижение к безопасности.

Для проверки, что пароль правильный, данные надо снабдить какой то контрольной суммой (до шифрования).

Все остальное - это security through obscurity.  Не работает в долгой перспективе.