Pull to refresh

Comments 28

Много исходников есть на сайте автора алгоритма
www.schneier.com/blowfish.html
Вообще Blowfish очень простой алгоритм. Как по F, так и по всему.
Единственный замут — инициализация
Самое сложное для понимания -это та самая F, которая позволяет производить обратное преобразование. Какая бы статья полная не была, но мне как человеку увлекающемуся, до сих пор не понятно как она в обратную сторону работает.
Функция F в обратную сторону не работает (: Это раундовые ключи местами меняются.
p.s. Имеется в виду, что функция F — линейная, и в процессе шифрации, и в процессе дешифрации ее задача одна и та же и принцип работы не меняется. Что касаемо самого алоритма, то в случае дешифрации меняется порядок использования ключей. Просто проследите за логикой работы на схемах шифрации/дешифрации, которая приведена в статье.
дада, я уже по википедийной статье разобрался в том, что F не должна работать в обратную сторону
Хорошо. Жаль только, что там нет схемы Фейстеля для процесса расшифровки.
Как раз не требуется чтобы она была обратима, у нас есть вход для неё.
Вообще это все строится на том что сложение по модулю легко обратимо. Т.е. если A xor B = C, то С xor B = A, а С xor A = B. В общем применяем операцию сложения по модулю к одному из операндов и результату их сложения и получаем другой операнд.

Вас что не учили как правильно верёвку на циферблат часов наматывать?)
Вот и пример, когда патенты являлись двигателем прогресса.
Хорошая статья, спасибо автору. Но мне кажется, что такие статьи надо сразу копировать на википедию.
> Ответ прост — она не ограничена. Можно использовать ключи до 576 бит. Но! Ограничение было сделано исходя из требований к соблюдению безопасности и криптостойкости алгоритма.

Можно объяснить этот момент?
Со слов Брюса Шнайера:

Ограничение размера ключа в 448 бит было сделано для достижения гарантии того, что каждый бит каждого под-ключа (имеются в виду раундовые ключи и элементы матрицы подстановки) непосредственно зависит от каждого бита исходного ключа (в целом), поскольку использование совокупности ключей P15, P16, P17 и P18 не оказывает влияние на каждый бит зашифрованного текста.
Отличная статья, автору спасибо! Реквестирую описание алгоритма AES.
Отличная статья. Может, действительно, отредактируете её и на Википедию зальёте?
Природная скромность не позволяет ^^

Да и к тому же, на Википедии есть уже статья, посвященная алгоритму Blowfish, которая, как мне кажется, вполне дает понять что из себя представляет данный алгоритм. Не так подробно как здесь, конечно, но всё же. Единственное, наверное, имеет смысл разместить там ссылку на эту страницу, для тех, кто хочет узнать более подробно по этой теме.

А так, Хабрахабр ведь тоже своего рода свободная энциклопедия…
Не-не, это должны увидеть и не хабра-люди.
Пожалуйста, залейте на википедию.
В профессиональных кругах слово «шифрация» не в почёте, вместо него употребляется «шифрование». Аналогично с «дешифрацией». При этом следует иметь в виду, что «дешифрование» — это получение plain text без ключа, т. е. «взлом»; а «расшифровывание» — это получение plain text при знании ключа.
Разумеется, иная терминология никак не уменьшает ценности статьи. :-) Автору спасибо.
В своё время пришлось разбираться с алгоритмом IDEA практически по исходникам, текстов мне тогда было доступно мало, поэтому представляю, что это такое. И если сообщество сочтёт нужным, поддержу тему статьёй по этому алгоритму.
Это банальная грамотность, а не профессиональные круги.
Вопрос терминологии очень часто метит на звание «камня преткновения» в IT-среде. Но, к счастью, достигнуть этого у него не удается, поскольку понимаем мы друг друга зачастую с полуслова :) Контекст всё же первичен, а форма представления вторична.

В вопросе шифрации/шифрования я исхожу из следующей логики:

«шифрация» — как процесс (as process) — произвести шифрацию входящих данных;
«шифрование» — как возможность (as aptitude) — эта программа использует шифрование по алгоритму XXL.

По аналогии с «врач сейчас проводит «операцию» и «этот врач может «оперировать».

Если относительно дешифрации/взлома/расшифрования — то любой процесс получения plain-text из зашифрованного — это в принципе так или иначе процесс дешифрации (расшифрования как. Просто, если это было сделано без полного ключа, то это еще и «взлом».

Но, как Вы правильно заметили ниже, «хоть горшком назови, только в печь не сажай» (:
Как у Blowfish'a с сертификацией в России?
Алексей, вопросами сертификации в конкретных странах из принципа не интересуюсь. У меня характер космополита и поэтому в вопросах разработки я привык доверять мировому опыту в первую очередь.

Думаю, на местах, это скорее правовые и организационные вопросы, на которые лучше ответят юристы.
На схеме у Вас 17 блоком XOR-ится верхняя половинка, а 18 — нижняя, в коде же наоборот. Это может каким-либо образом повлиять на криптостойкость алгоритма?
p.s. Планируется продолжение…

Продолжения еще не было?
Only those users with full accounts are able to leave comments. Log in, please.

Articles