Рубрика:
Разработка /
Изучаем «1С»
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
КИРИЛЛ ТКАЧЕНКО, инженер 1-й кат., ФГАОУ ВО «Севастопольский государственный университет», tkachenkokirillstanislavovich@gmail.com
Программная реализация энигмоподобной системы в среде 1С
Рассмотрим реализацию узлов инициализации, шифрования и дешифрования для энигмоподобной системы на встроенном языке 1С
Роторная шифровальная машина «Энигма» широко известна из технической литературы [1, 2], художественных произведений и кинематографа. Она и ее клоны оставили глубокий след в криптографии и криптоанализе, вызвав ихскачкообразное развитие. Кроме прочего, сведения технического, алгоритмического и конструктивного характера по ней доступны в открытой печати. Поэтому интересно рассмотреть пути ее реализации в современных условиях.
В статье рассмотрим программную реализацию на встроенном языке 1С отдельных узлов несовместимой с оригинальной энигмоподобной роторной шифровальной машины.
В полной мере воспроизвести шифровальную машину не представляется возможным. Более того, многие ее аппаратные, аппаратно-программные и полностью программные реализации [1, 2] будут отличаться друг от друга и от эталона: почислу колес, алфавиту и числу символов алфавита на колесе ротора; по способу кодирования символов алфавита; по начальному заполнению колес ротора и их начальному повороту; по способу поворота колес; наконец, для программных реализаций, по способу обратного преобразования (построение обратных таблиц для колес, прямой поиск в обратном направлении и прочее).
Прежде чем начинать работу, необходимо обратить внимание на имеющиеся русскоязычные публикации.
Достаточно известна монография [1] с объемными, подробными сведениями исторического характера. Но, к сожалению, программа на языке QBasic, приведенная в листинге этой книги, обладает существенным недостатком. Она работает не со всеми 256 однобайтовыми символами, а с их подмножеством, «срезом» кодировки – прописными русскими буквами. При этом происходит преобразование прописных русских букв в их порядковые номера в алфавите (А – 0, Б – 1 и такдалее) и наоборот способом, пригодным только для однобайтовой кодировки OEM-866. Внутренние преобразования с кодированными подобным способом буквами также в некоторой степени основаны на этом преобразующем соответствии. Этот способ хранения символов значительно сдерживает портирование этой конкретной реализации на многие другие окружения, хоть немного отличные от DOS/QBasic.
Развитые возможности встроенного языка программирования 1С позволяют обеспечить функционирование всех необходимых возможностей энигмоподобной шифровальной системы |
Усовершенствованная реализация [2] достаточно сильно отличается от классических роторных машин. Например, шифрование и дешифрование выполняются не над конечным подмножеством символов алфавита, а над отдельными байтами входной информации. Добавлены существенные усложнения в узлы инициализации таблиц перестановок. Перенос в актуальные окружения затруднен использованием не только возможностей операционной системы, но и вызовов BIOS.
В современных реалиях можно остановиться на программном комплексе 1С. Развитые возможности его встроенного языка программирования позволяют обеспечить функционирование всех необходимых возможностей энигмоподобной шифровальной системы.
Учитывая вышесказанное, можно, несколько упрощая, описать процесс шифрования и дешифрования сообщений в таких системах.
Перед началом как процесса шифрования, так и процесса дешифрования выполняется настройка колес ротора. Каждое колесо выполняет шифрование отдельного символа сообщения по шифру простой замены. Но выходной зашифрованный символ подается на вход следующего колеса. Получается, что символ последовательно проходит через цепочку колес и оказывается на выходе системы. После выполнения шифрования отдельного символа колеса поворачиваются. Для дешифрования процесс выполняется в обратном порядке для колес. Происходит выбор расшифрованного варианта символа на основе текущего рассматриваемого.
Чтобы придать происходящим процессам подобие исходных конструкций образца, в прямом виде символы алфавита фигурировать не будут. Будет использоваться их порядковый номер начиная с нуля, в алфавите, для прописных букв: 0 – А,1 – Б, 2 – В, …
Статью целиком читайте в журнале «Системный администратор», №4 за 2017 г. на страницах 72-74.
PDF-версию данного номера можно приобрести в нашем магазине.
- Жельников В. Криптография от папируса до компьютера / В. Жельников. – М.: ABF, 1996. – 335 с. – ISBN 5-87484-054-0.
- Текин В.В. Усовершенствованная версия «Энигмы» / В.В. Текин // «Мир ПК», № 6, 2007 г. – С. 64-65.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|