Ой-вей, не пишите собственную криптографию, дети! Это ведь ещё Брюс Шнайер завещал, использовать только алгоритмы, которые были изучены десятками криптографов и прошли проверку временем. Можешь юзать библиотеки типа NaCL, libgcrypt, готовый софт вроде LUKS, dm-crypt или TrueCrypt, но если ты сам с нуля пишешь свой алгоритм шифрования - готовься к проблемам.