Комментарии 93
Достаточно интересно… Когда то реализовывал класс СRSA. Но это тема для целой статьи, а не коммента.
шифрование с помощью ключей, вещь конечно очень мощная.
но мне всегда было интересно придумать шифрование которое бы основывалось только на исходной строке.
насколько я знаю, до сих пор нет таких алгоритмов, чтобы они при этом были обратимыми и обладали очень высокой стойкостью к взлому.
но мне всегда было интересно придумать шифрование которое бы основывалось только на исходной строке.
насколько я знаю, до сих пор нет таких алгоритмов, чтобы они при этом были обратимыми и обладали очень высокой стойкостью к взлому.
нубский, наверное, вопрос, но я не могу понять, а зачем может понадобиться применять некоторый алгоритм шифрования, который всем известен?
то есть расшифровать строку можно вашей же функцией, в чем смысл шифрования?
то есть расшифровать строку можно вашей же функцией, в чем смысл шифрования?
шифрование основано на двух матрицах(квадратах) с символами. символы в каждом квадрате одни и теже но в разной последовательности. тоесть вы берете мою функцию, перемешиваете подругому второй квадрат и всё. шифрование будет уже другое.
и чем это отличается от шифрования с помощью ключей?
почти любое шифрование так или иначе использует ключи.
здесь нет понятия ключей в применимом обычно смысле. так как ключи внутренние, постоянные для каждой реализации функции и потому упрощающие пользование функцией
здесь нет понятия ключей в применимом обычно смысле. так как ключи внутренние, постоянные для каждой реализации функции и потому упрощающие пользование функцией
Ну так значит, ваши матрицы с квадратами — и есть ключи шифрования.
Ведь ключ — это не обязательно абстрактная строчка длиной n бит.
К примеру в ГОСТ — ключ — это точка эллиптической кривой. А в двойном квадрате — это матрицы
Ведь ключ — это не обязательно абстрактная строчка длиной n бит.
К примеру в ГОСТ — ключ — это точка эллиптической кривой. А в двойном квадрате — это матрицы
А разве это не взаимоисключающие вещи?
Как со скоростью?
алгоритм конечно простенький но реализация имхо переусложнена
ну и наличие таких вещей как for($i=;$i<$dimension;$i++) и $s1[$a1[]][$a2[1]] несколько пугает
ну и наличие таких вещей как for($i=;$i<$dimension;$i++) и $s1[$a1[]][$a2[1]] несколько пугает
Зачем это нужно, уважаемый?
а бот не может перейти по этой ссылке?
ну а про капчеломательство… могет только капчей и ограничиться?
ну а про капчеломательство… могет только капчей и ограничиться?
в общем от ботов чтото важное скрывать самое то.
А старый-добрый метод с шифрованием от ботов при помощи JS вас чем не устраивает?
устраивает)
но имеет дополнительные минусы
— не работает если JS выключен
— злоумышленник имеет у себя исходник шифрования, что на порядок упрощает настройку бота на автоматический взлом
но имеет дополнительные минусы
— не работает если JS выключен
— злоумышленник имеет у себя исходник шифрования, что на порядок упрощает настройку бота на автоматический взлом
Эм. А можно подробнее, зачем это надо?
rc4 к примеру. помню, реализация была строк 10 — плюс шифр потоковый. выложить?
+rc4
Использовал в качестве патча для VB, отлично…
с ключем до 2кб… взломать… хех… не знаю…
по крайней мере с ключем…
Использовал в качестве патча для VB, отлично…
с ключем до 2кб… взломать… хех… не знаю…
по крайней мере с ключем…
Я не силен в РНР, подскажите, пожалуйста — а что делает функция md5_decrypt?
явно не то о чем говорит её название )
Т.е. я правильно понял — вы по МД5 хэшу восстанавливаете исходное значение?
длинна зашифрованного текста почти в два раза больше оригинала.
не критично, но накладно иногда
не критично, но накладно иногда
Да ладно, там же явно видно, что МД5 используется для генерации гаммы.
а как же коллизии?
увижу в своем проекте — поверю, про инопланетян тоже говорят что кто-то видел ;)
шутко…
шутко…
alek_sys писал что то типа «Т.е. я правильно понял — вы по МД5 хэшу восстанавливаете исходное значение?»
Но блин как можно по md5 хэшу восстановить что то конкретное?
Но блин как можно по md5 хэшу восстановить что то конкретное?
насчет невозможно это вы зря )
1) я не являюсь криптоаналитиком, и возможно действительно несмогу расшифровать.
2) криптоанализ стоит очень дорого )
зато тут на хабре очень много умных людей )
так что давайте ваши фразы. возможно у когото получится разобраться достаточно быстро)
2) криптоанализ стоит очень дорого )
зато тут на хабре очень много умных людей )
так что давайте ваши фразы. возможно у когото получится разобраться достаточно быстро)
ваша функция, есть просто еще одна модификация XOR шифрования )
а как легко сломать xor-подобные функции можно поискать в гугле. там море способов.
жду фразы зашифрованные вашей функцией )
а как легко сломать xor-подобные функции можно поискать в гугле. там море способов.
жду фразы зашифрованные вашей функцией )
Знаете, одноразовый блокнот тоже строится на основе XOR. Его вы тоже сломаете? :)
В самом XOR нет совершенно ничего плохого. Всё зависит от того, с чем XORить.
В самом XOR нет совершенно ничего плохого. Всё зависит от того, с чем XORить.
XOR это не шифрование!
если ethaniel, даст пример шифров его функции, возможно я смогу вам это наглядно показать )
если ethaniel, даст пример шифров его функции, возможно я смогу вам это наглядно показать )
Вот тут вы правы в одном, XOR — это не шифрование. Это «исключающее или» :)
А вообще XOR как один из этапов применяется во многих крипто-алгоритмах.
Вот почитайте например о гаммировании:
ru.wikipedia.org/wiki/Гаммирование
А вообще XOR как один из этапов применяется во многих крипто-алгоритмах.
Вот почитайте например о гаммировании:
ru.wikipedia.org/wiki/Гаммирование
или вы.
только честно.
1) возмите приведенные функции habrahabr.ru/blogs/php/61309/#comment_1679671
2) зашифруйте небольшую фразу
3) выложите сюда «шифр» фразы
только честно.
1) возмите приведенные функции habrahabr.ru/blogs/php/61309/#comment_1679671
2) зашифруйте небольшую фразу
3) выложите сюда «шифр» фразы
Да в общем вы и сами можете зашифровать. Просто выберите в качестве пароля любую строчку подлинее. А потом забудьте пароль :)
И попробуйте восстановить зашифрованное сообщение.
Если получится — напишите топик (я первым за него проголосую), или отпишитесь сюда в комментарии, как вы это сделали.
Слабость конкретно этого шифра заключается в том, что там в преобразованиях используется сам пароль (вместого его хеша). При коротких паролях возможно он легко вскроется. Но если поставить случаный 16-символьный пароль — будет уже сложнее.
В общем, попробуйте :)
Думаю хабрасообществу будет интересен такой топик
И попробуйте восстановить зашифрованное сообщение.
Если получится — напишите топик (я первым за него проголосую), или отпишитесь сюда в комментарии, как вы это сделали.
Слабость конкретно этого шифра заключается в том, что там в преобразованиях используется сам пароль (вместого его хеша). При коротких паролях возможно он легко вскроется. Но если поставить случаный 16-символьный пароль — будет уже сложнее.
В общем, попробуйте :)
Думаю хабрасообществу будет интересен такой топик
По-моему для такой задачи при таких условиях и Цезарь бы подошел. + работал бы быстрее.
Для расшифровки Цезаря достаточно сообщения длиной L, где L — длина алфавита. Для расшифровки 2ых квадратов необходимо сообщение длиной L*(L-1)…
неужели всего L*(L-1)?
можно линк на методы взлома?
можно линк на методы взлома?
Это легко посчитать ручками. Для того чтобы получить «достаточное» количество исходного материала, нужно передать все пары из алфавита, комбинация L по 2 => L*(L-1)… Упростить не получиться, т.к. импликации и эквивалентности нет, т.к. 2 разных квадрата…
Опс… Забыл что у нас пары… Т.е. 2*L*(L-1)…
Опс… Забыл что у нас пары… Т.е. 2*L*(L-1)…
Не нашёл?!
Два примера:
RC4: www.phpclasses.org/browse/file/25139.html
Blowfish: www.phpclasses.org/browse/file/6294.html
посмотрите там же в том же разделе
Два примера:
RC4: www.phpclasses.org/browse/file/25139.html
Blowfish: www.phpclasses.org/browse/file/6294.html
посмотрите там же в том же разделе
ознакомлюсь. спасибо
кстати, этот RC4 — с ошибками, сравните результат его работы и работы mcrypt'овского ARCFOUR. к тому же парадоксально медленеее, чем вариант без ошибок (http://www.phpclasses.org/browse/file/3689.html)
Использовал для своего шифрования случайные числа, в итоге для одной и той же строки получается разный зашифрованный результат, при расшифровке все отрабатывается нормально и не требуется никаких ключей, для передачи данных пользователю в хидден полях подходит хорошо.
я только не понял одного момента
$s1[$a1[]][$a2[1]]
зачем там $a1[]
это парсер что-то скушал или уличная магия?
$s1[$a1[]][$a2[1]]
зачем там $a1[]
это парсер что-то скушал или уличная магия?
Вот, есть ещё один, довольно просто реализуемый алгоритм симметричного шифрования. Называется CipherSaber (CipherSaber на Wikipedia). Легко реализуется на PHP.
Обфускация какая-то, а не шифрование.
Не следует путать шифрование с кодированием.
Первое правило криптографии — не изобретайте свои алгоритмы. Подобный — основанный на квадратах взламывается моментально (см. линейный криптоанализ)
Как уже подсказали реализация полно в частности BlowFish, DES (пусть и скомпрометированный, но достаточно стойкий), IDEA, GOST блоковые или тот же совершенно простой RC4 потоковый.
:-)
Как уже подсказали реализация полно в частности BlowFish, DES (пусть и скомпрометированный, но достаточно стойкий), IDEA, GOST блоковые или тот же совершенно простой RC4 потоковый.
:-)
а какже разминка для ума?
изобретая свои лучше — понимаешь чужие)
изобретая свои лучше — понимаешь чужие)
Это не разминка, к сожалению, это профанация достаточно сложной области математики, только не обижайтесь :-)
Вы, кстати, попали в очень распространную ловушку. Кажется, если никто не знает ключ, то шифр очень надежен, но на самом деле это не так.
Вы, кстати, попали в очень распространную ловушку. Кажется, если никто не знает ключ, то шифр очень надежен, но на самом деле это не так.
GOST это ГОСТ? Забавно вы его на родине обзываете.
Первое правило криптологии: Нельзя недооценивать противника, а не ваше.
Здесь более уместны 2, 3, 4 правила:
1. О степени сложности может судить только криптоаналитик
2. При оценке надежности, нужно допустить что противнику известно все кроме ключа.
3. Внешняя сложность может быть иллюзорной, она вселяет в криптографа обманчивое впечатление надежности
Хотя в остальном согласен, глупо в криптографии изобретать велосипед
Первое правило криптологии: Нельзя недооценивать противника, а не ваше.
Здесь более уместны 2, 3, 4 правила:
1. О степени сложности может судить только криптоаналитик
2. При оценке надежности, нужно допустить что противнику известно все кроме ключа.
3. Внешняя сложность может быть иллюзорной, она вселяет в криптографа обманчивое впечатление надежности
Хотя в остальном согласен, глупо в криптографии изобретать велосипед
А чо такого то в спам-ботах? Пускай шлют. Фильтры не пустят все равно. ;)
Зачем это нужно для проектов, у которых не хватает хотя-бы 6 баксов в месяц на вменяемый хостинг?
Чем вам модуль mcrypt не угодил, там столько всего вкусного!
Я так подозреваю, 8-битные кодировки это дело не поддерживает?
У вас в таблице последний 80-й символ — просто пустота. Так надо?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Обратимое шифрование текста — метод «Двойной квадрат»