Поскольку появились проблемы с показать решение, то хотел бы сказать следующее.
1. Если решение не помещается в короткое сообщение - то это не решение, а какой то мега монстр.
2. Вообще то интересуют только методы шифровки - дешифровки и для приличия ответ в виде номера ключа.
3. И отвечая на задачу № 003 не следует присваивать ей имя другой задачи, на пример 004.
Удачи!