Pull to refresh

Comments 9

100 лет прошло, как первые версии машины были изобретены, а мы до сих про это говорим и принципы из неё используем в наших работах. Насколько это продвинутая технология была!

UFO just landed and posted this here

Ну так я бы не говорил. Сегодня немало изобретается и придумывается. Но просто во все времена есть люди опережающие эти времена иногда на столетия. В мыслях или делах.

Может, потому что это базовые принципы? Как закон Ома в электротехнике, например. Логично, что все простые решения "выгребли" предки.

Согласен, с простыми - да. Но как наше, так и будущие времена ждут след. открытий и изобретений. Например многим нам сейчас вообще не понять, насколько многое поменяется после появления ChatGPT. Я работаю со студентами и у нас сейчас большая дискуссия ведётся по этому поводу. Те. мы живём во времени, когда происходят коренные изменения. Вначале интернет, и многое другое. Сейчас ChatGPT.

Так суть шифрования современного практически не поменялась. Только вместо роторов у нас модулярная математика и кольца на элиптических кривых.

Не знаю как сейчас, но в своё время кодировочная машинка в войсках тоже была роторная. Каждое утро разбирали, протирали и смазывали эти роторы. Механика и электрика, но работала надёжно.

Странный пост..des почти сразу заменили на 3des, этим алгоритмам уже тоже за 40 лет. Программа на С почему-то, а не на C++, Я уверен что с объектами это будет нагляднее.

И в C, и в C++ не надо писать в функциях extern, зачем оно? И static у функций, зачем? Так же странно смотрится создание массивов в стеке, и затем почленное их копирование в кучу (heap).

В целом статья интересная, но немного не оправдывает ожиданий

Не совсем понимаю при чём тут DES и 3DES, когда статья об Энигме. В самой статье я указал DES исключительно при грубом сравнении количества ключей с Энигмой.
Си выбран с условием того, что его код понятен многим программистам, т.к. таковой является стандартом де-факто современных императивных языков программирования, в то время как результирующий код на C++ может быть сильно переусложнён конструкциями.
Написанная мной программа на Си также базируется на объектах типа enigma_t и encoder_t, обладающих конкретно заданными функциями. Не обязательно использовать ООП языки, чтобы работать на уровне объектов.
Спецификаторы классов extern и static я писал с условием того, что эти функции могут быть перенесены в отдельный файл, на уровень библиотеки. Тут и становится логичным применение static. Спецификатор extern здесь служит исключительно для понимания того, что такая функция умышленно предназначена для вызова извне.
Копирование элементов массива необходимо для того, чтобы полностью отделить объект и его внутреннее состояние от внешних факторов, которые могли бы неявно его изменять. Это также сделано с условием, если таковой код будет использоваться где-либо ещё.
Так что вот, все ответы.

Sign up to leave a comment.

Articles