Хочу реализовать на Питоне криптографический алгоритм наподобие DES (знаю, что есть такие модули, но хочу сделать это руками). Сейчас уперся в то, что не знаю как трактовать любые данные в двоичном представлении (для последующих битовых операций, операций сдвига, перестановок итп).
допустим, имеется текстовый файл text.txt, в нем какой то текст. N - размер блока, которым мы будем оперировать. Желаемый алгоритм - чтение блока, операции над ним, записывание блока в другой текст (ака шифрование). Все упирается в том, что не совсем понимаю как в Питоне представить блок как двоичное число.
как я понимаю, чтению блоками будет выглядеть так:
input = open("text.txt", "rb") # открыли для чтения
block = input.read(N) # загрузили первый блок размера N
Что дальше делать? Можно перевести в строку, но как перевести строку в двоичное представление я тоже н еочень понимаю.
Буду рад любым советам, либо ссылке, где можно почитать (англ тоже подойдет). Понимаю, что Питон не очень предназначен для операций такого уровня, но все же надеюсь, что возможность имеется.