1) Перепилил на циклический проход по списку, вместо изменения строки
2) Уже сделал
4) Перепилил на получение блока из файла в виде bytearray, и его непосредственного изменения
5) Python 3.x
7) В своем обучении до такого кунг-фу я еще не дошел :)
Итого скорость получилась 3 Мбайт/с, на Си тоже самое 100+ Мбайт/с
После перепиливания списков на bytearray скорость выросла до 3 Мбайт/с, скорость чтения/записи, без преобразования - от 100 до 1000 Мбайт/с.
Причем внутренний цикл, даже без преобразования (с пустым телом), тормозит программу в 10-20 раз :(
Больше всего времени как оказалось занимает циклический сдвиг строки, но даже если убрать всю часть связанную с шифрованием, скорость чтения/записи выше 10 Мбайт/с не поднимается :(