Pull to refresh

Comments 20

Первое, чему учат любые учебники по криптографии и информационной безопасности, и первое же, что говорят на любых курсах — Не используйте не проверенных временем и не перепроверенных сотню раз алгоритмов. Второе — не пытайтесь самостоятельно реализовать даже существующие алгоритмы, даже если вам кажется, что вы прекрасно их понимаете. Никакой самодеятельности, просто следуйте стандартам.
Но в качестве зарядки для мозгов статья хорошая. Главное, что заголовок выбран правильно!
На ноль делить нельзя, да.
Есть 2 причины для этого совета: 1) человек, плохо разбирающийся в криптографии, накосячит очень сильно. 2) нестандартный алгоритм будет сложно вскрыть «кому надо».
Смутно представляю себе, как «кому надо» будет вскрывать AES. Так что дело именно в первой причине.
Качественная реализация криптографических алгоритмов, это не только программная реализация самого алгоритма, но и принципы работы с памятью, с ключами, с открытым и зашифрованным текстом, с генерацией случайных чисел. И в этих частях накосячить даже проще, чем в самом алгоритме.
А вот для защиты от «кого надо» лучше использовать открытые библиотеки реализующие стандартные алгоритмы. Там можно самому убедиться в том, что нет «пасхальных яиц». Но, опять же, где гарантия, что opensource разработчик не коммитнул в последнюю версию используемого вами компонента какую-нибудь бяку?
Вот именно, тем более чтобы хотя бы понять как работает некий код и всё ли он делает правильно, надо хорошо понимать в криптографии. У меня уже давно сложилось ощущение, что Open Source показал, насколько мы близки к сингулярности в отдельно взятой области знания.
Вы путаете программные закладки в библиотеке и математические закладки в алгоритме. Скажем, разработало АНБ некий нестойкий шифр с глубоко запрятанной уязвимостью. Такое вы не в жизнь не найдете (если, конечно, вы программист, а не криптоаналитик).
Вы предполагаете, что реально разработать новый математический алгоритм, доказать его эффективность, повсеместно внедрить и при это еще и оставить для себя «заднюю дверь»? Имхо, это уже что-то из области теории заговора, причем граничащего с паранойей.
Я имел в виду именно программные закладки. Например, могут генерироваться не 128-ми битные ключи, а более короткие, а по ним уже вычисляться ключи для AES. В этом случае для атаки «в лоб» зная алгоритм генерации первичных коротких ключей не придется перебирать все варианты.
Но это все в порядке бреда, т.к. алгоритм шифрования — это одно, а генерация ключей — другое. Сделать «программную закладку» в реализацию самого алгоритма шифрования невозможно — сообщения просто не будут корректно расшифровываться. Т.е. фактически это уже будет другой алгоритм.
Интересно, кто учебники по криптографии писал? NSA? что-бы не выдумывали ничего нового, а то не поломать?

Шучу конечно, но кошки скебут на душе.
Не знаю как на счет NSA, но точно знаю про одну страну в Средней Азии, где все банки, госслужбы и финансовые организации должны пользоваться одним определенным криптопровайдером, который разработан одной не слишком большой местной компанией.
Т.е. стандартный криптопровайдер, входящий в состав Windows и разработанный спецами Microsoft (или под их контролем) — это не безопасно. Стандартные провайдеры *nix систем — тоже. А вот что-то, написанное хрен пойми кем, под чутким контролем местного аналога ФСБ — это самое оно.
Наводит на размышления. Хотя, возможно, это просто схема откатов и распилов.
«Неуловимый Джо» — «Безопасность через бесполезность».
Но когда экономика и прочие политстрасти вокруг страны вырастут — читать шифры будут все, кому не лень.
UFO just landed and posted this here
Если у вас пакетный режим, можно же сделать сервис который будет отвечать за передачу, висеть 24x7, и не будет выгружать проинициализированное состояние для шифрования.
Пакетный режим в том смысле, что он предусматривает смену хотя бы вектора инициализации(соли) для каждого пакета(сообщения). А это всё равно полная переинициализация.
Звучит всё разумно. Выложите исходный код где-нибудь на гитхабе с названием HC-128-Scratch, сделайте описание на английском и люди потянутся, мне кажется.
Этот исходник — часть открытого проекта, который правда пока только на моём компе существует. Так что да, когда нибудь он появится на гитхабе или где-нибудь еще.
Да просто черкните автору алгоритма и спросите его мнения.
Довольно часто использовал модифицированные векторы инициализации в MD5 без последствий для софта, зато с последствиями для тех, кто долго не мог понять почему у них MD5 не совпадает с моим %)
Спасибо за статью.
в SHA-2 для инициализации используются, например, дробные части кубических(или квадратных, не помню) корней первых скольки то там простых чисел в 16ричном виде. Так что, тоже под замену без последствий.
Тег «не повторяйте это дома» -> «не делайте это в продакшене».
Sign up to leave a comment.

Articles