Онлайн система шифрования текста


Сделай на своем сайте [url=http://allworldsms.com/html/crypto.php]систему шифрования текстов[/url]. Я не профессионал, но с криптографией немного знаком. Система использует 2 ключа – один для шифрования, второй для расшифровки текста. Ключи вы генерируете сами. Есть ограничения на редко используемые спецсимволы. Краткую инструкцию по применению написал внизу страницы.
Огромная просьба оценить мою «Систему шифрования текстов» – нужны ваши критические замечания и советы по улучшению ее работы. Спасибо.


Комментарии
— SATtva (09/04/2013 20:49, исправлен 09/04/2013 20:49)   

Что ж, если это не ссылочный спам, для начала опишите в подробностях свою реализацию. Хоть поржём.

— MikeCoder (09/04/2013 21:04)   
Ну как бы нет желания подробно раскрывать реализацию – если ее описать, то она полностью теряет свою ценность :) А общий принцип работы прост – из любой фразы генерируется 2 ключа (хэширование + обработка). Ключи цифровой, но имеют разную длину. Затем первый ключ по специальному алгоритму в несколько потоков перебора шифрует ваш текст, а второй по обратному алгоритму расшифровывает. Шифрование индивидуально для каждой пары ключей.
— SATtva (09/04/2013 21:09)   
Ну как бы нет желания подробно раскрывать реализацию – если ее описать, то она полностью теряет свою ценность :)

На этой оптимистичной ноте можете отправлять её в ведро.
— unknown (09/04/2013 21:09)   
если ее описать, то она полностью теряет свою ценность

Похожим свойством может обладать система какого-то обмана или мошенничества.
— MikeCoder (09/04/2013 21:19)   
Похожим свойством может обладать система какого-то обмана или мошенничества.

Может я что-то не понимаю, но в чем обман то (или мошенничество)? Шифрование потому и существует, чтобы нельзя было посторонним людями понять что зашифровано.
— SATtva (09/04/2013 21:29)   
Шифрование потому и существует, чтобы нельзя было посторонним людями понять что зашифровано.

Обратите внимание на разницу между "что зашифровано" и "чем зашифровано".
Гость (09/04/2013 21:55)   
Извините, нет желания дальше изучать сайт из ОПпоста. Тех 5 минут, что потрачены, хватило, чтобы прикинуть, что к чему. Я, как параноик со стажем, не доверяю таким поделкам.
Ввод данных в формы и операции происходят в облаке на вашей стороне. Вбивая в форму текст – уже зашкваг. Этого достаточно, чтобы не искать остальные минусы, которых не одна дюжина.
Как эксперимент пускай живет и развивается. Сноски на вашем сайте желательно выделить красным цветом и крупным подчеркнутым болдом с множеством знаков восклицания, что автор не несет никакой ответственности ни за что, это просто игрушка.
— MikeCoder (09/04/2013 22:11)   
автор не несет никакой ответственности ни за что

Ну как бы это и быть не может по-другому :)
Конечно, я и не претендую на реальную (защищенную) систему, которая гарантирует секретность и т.п.. Конечно, это больше похоже на игрушку, так как среднестатистический параноик сразу поймет, что я могу делать все что угодно (например, лог записывать)... Пока на все это я не обращаю внимания – меня интересует только качество шифрования и возможности самой системы...
Может какого-то дополнительного функционала не хватает?
Гость (09/04/2013 22:17)   

Что, вообще никто? И даже небо (капча намекает)? И даже Аллах автор?

To do: но и это еще не все. Также вашему вниманию...

P.S. Пардон, но диз и верстка вернули в память хомяков из делеких нулевых.
— SATtva (09/04/2013 22:31)   
Ну как бы это и быть не может по-другому :)

Ваши пользователи могут не иметь достаточной квалификации, чтобы оценить степень безнадёжности реализации. Из описания у них вполне может сложиться впечатление, что ей можно доверять секреты. Собственно, в первом посте Вы её примерно так и представляли.
Гость (10/04/2013 00:42)   
[troll mode]
Обратите внимание на разницу между "что зашифровано" и "чем зашифровано".
ТС засекретил алгоритм из-за его особого применения[link1].
[/troll mode]
— MikeCoder (10/04/2013 10:00)   
Что, вообще никто? И даже небо? И даже Аллах автор?

Конечно никто, и даже автор не помнит :)... Не придирайтесь к словам – имелось ввиду, что алгоритм придуман лично мной, а не взят из какой-нибудь документации по криптографии.

диз и верстка вернули в память хомяков из делеких нулевых

Учитывая, что за сутки на сайт заходит по 100 человек через IE 6 (не считая других веселых браузеров), то переделывать верстку под html 5 даже не планирую – обеспечиваю максимальную кроссбраузерность для всех пользователей.А дизайн дело личное – вам не нравится мой, а мне не нравится 99% шаблонных сайтов... И вообще это тут не причем – из-за того, что вам не нравится дизайн системе не стала работать хуже.

может сложиться впечатление, что ей можно доверять секреты

А почему нет? – Конечно, можно доверять. Если и есть возможность лично мне перехватывать шифровку, то это не значит что я это делаю! А другие ничего сделать не могут... Дело ваше доверять мне или нет, но от того, что вы не доверяете система не становится более хуже – она работает так же и обеспечивает секретность данных с очень большой степенью надежности:)

оценить степень безнадёжности реализации

Если все так безнадежно, то давайте, взламывайте алгоритм – посмотрим, как это у вас получится :)
— SATtva (10/04/2013 10:06)   
имелось ввиду, что алгоритм придуман лично мной, а не взят из какой-нибудь документации по криптографии.

Вы так говорите, как будто это что-то хорошее.

она работает так же и обеспечивает секретность данных с очень большой степенью надежности:)

Вот Вы это сейчас серьёзно? Наколенный закрытый алгоритм, обработка на стороне сервера, нешифрованный канал... Просто рвёте нам шаблоны.

Если все так безнадежно, то давайте, взламывайте алгоритм – посмотрим, как это у вас получится :)

Для общего развития:
/Библиотека/Статьи/СекретностьБезопасностьНеясность[link2]
/Библиотека/Статьи/ХанаанскийБальзам[link3]
Гость (10/04/2013 10:17)   
обеспечивает секретность данных с очень большой степенью надежности
Докажите и дело с концом, или в сад.
— unknown (10/04/2013 11:06, исправлен 10/04/2013 11:15)   

Смех в зале, безуспешно пытаясь сохранить серьёзный вид, некто unknown безнадёжно пытается спросить: вам знакомо отличие парадигм "Attack Based Security" от "Provable Security"? Ну хотя бы расскажите, как вы понимаете принцип Керхгоффса (Кирхгофа).


Если все так безнадежно, то давайте, взламывайте алгоритм

Вы обратились не совсем по адресу.
Возможно, вам следует отправить свою разработку Б. Шнайеру в рубрику "Doghouse Security".

Гость (10/04/2013 11:20)   
Абстрактная безопасность бывает только в умах математиков, и не имеет никакого отношения к безопасности реальной. Грубо говоря: можно поставить невзламываемую дверь, сейф и решетки на окнах, и быть ограбленным лишь потому что о этих действиях стало известно. А можно заныкать деньги с фантазией и никому не говорить, и ни один вор ничего не найдет. А если не выделываться – даже не полезет.
— SATtva (10/04/2013 11:26)   
Демагогия.
— unknown (10/04/2013 11:30, исправлен 10/04/2013 11:30)   

Принцип медведя[link4], dogsign security и прочие житейские мудрости у нас неоднократно о(б)суждались.

Гость (10/04/2013 11:34)   
Жизнь, просто жизнь. В ней нет готовых рецептов успеха. Все что известно вашему противнику – считайте что не работает. Работают уникальные хитрости, с умом и фантазией, но не каждому дано их придумывать.
Топикстартер молодец, теперь у него есть шифр для себя, который гарантированно никто не умеет взламывать. Другие могут доверять ТС или придумывать свое.
— unknown (10/04/2013 12:15, исправлен 10/04/2013 12:39)   

Ремесленничество vs. наука и технологии.


теперь у него есть шифр для себя, который гарантированно никто не умеет взламывать.

Почему? В чём гарантированность? Научите создавать такие шифры. Оставьте криптографов без работы.


http://www.cs.umu.se/kurser/5D.....ndouts/lecture13.pdf[link5]


Choice of algorithm:
• Hard, there is no absolute truth
• Only because you haven’t cracked the algorithm, doesn’t make it secure
• Anyone who comes up with a new cryptographic algorithm is either a genius or an idiot
• This doesn’t mean that everything new is bad, only that everything new is suspicious

См. также "Закон Шнайера"[link6].

Гость (10/04/2013 12:42)   
Почему? В чём гарантированность?
Никто не знает шифр, даже сам автор, значит никто не умеет его взламывать. Попробуйте взломать то, не знаю что. Другое дело что если узнают то могут научиться, ну так тогда автор новый шифр придумает.
Повторяю: шифр автора сейчас никто не умеет взламывать. Публичные шифры – неизвестно, но иначе и быть не может, ведь компетентные люди всегда говорят намного меньше чем знают. Наивно полагать что секрет взлома популярного шифра быстро станет известен. Скорее наоборот, взломанный шифр будут всюду продвигать, секрет взлома тщательно охранять, вдумчиво использовать и не палить просто так.

Научите создавать такие шифры.
Легко. За 500 баксов проведу вам в аське часовой ликбез по быстрому клепанию шифров на коленке. Есть ряд принципов которые нужно соблюдать, кроме них важна фантазия и чутьё на уникальные фишки. Я придумывал шифры с 4096 и 8192 битным ключом.
— MikeCoder (10/04/2013 12:44)   
Для общего развития

Спасибо за статьи. Скорее всего, я конечно не прав... Именно для этого и создал эту тему, чтоб сделать какие-то выводы. Наверное, все же надо описать алгоритм шифрования – теперь надо переосмыслить некоторые вещи и подумать как это правильно сделать.

Ну хотя бы расскажите, как вы понимаете принцип Керхгоффса (Кирхгофа)

Вы хотите сказать, что что-то стоящее может написать ТОЛЬКО человек, знающий эту информацию? Извините, но это глупость – большинство хороших вещей в нашем мире как раз делается не на основе, а вопреки чему-то... Хотя я не настаиваю что это именно тот случай :)

Вы обратились не совсем по адресу

Я обратился сюда за обоснованной критикой, а не для пустых фраз... Эти слова были только для автора цитаты, остальных я просил совсем о другом :)
— SATtva (10/04/2013 12:45, исправлен 10/04/2013 12:45)   

Гость (10/04/2013 12:42), это так толсто, что даже тонко.

— SATtva (10/04/2013 12:47)   
Вы хотите сказать, что что-то стоящее может написать ТОЛЬКО человек, знающий эту информацию?

Трудно сделать что-то стоящее, не имея представления об одном из основополагающих принципов криптографии.

Я обратился сюда за обоснованной критикой, а не для пустых фраз...

Вашу реализацию раскритиковали вдрызг. Постарайтесь сделать правильные выводы.
— unknown (10/04/2013 13:15, исправлен 10/04/2013 13:30)   
большинство хороших вещей в нашем мире как раз делается не на основе, а вопреки чему-то...

Взяли и например, коллайдер случайно построили. Методом тыка. Без теории, расчётов, моделирования и проектирования.


Я придумывал шифры с 4096 и 8192 битным ключом.

Keccak тоже так может шифровать. С ключом любой длины. Фичей является то, что начиная с определённого порога, величина ключа не влияет на стойкость и количество операций брутфорса. Есть по крайней мере ещё несколько лимитирующих факторов. Вероятно, вы сделали важное открытие и построили модель симметричного шифрования, которая обходит этот принцип, причём без дополнительных нежелательных эффектов.


Такие симметричные шифры теоретически исследуют, чтобы запихать ключ, IV, Tweak-V, Personal-V и проч. на один вход шифра, а не для увеличения стойкости.


Никто не знает шифр, даже сам автор, значит никто не умеет его взламывать.

Тогда алгоритм должен выполняться на сферическом сервере в вакууме посредством астральной связи. Очень практично. Примерно так[link7].

Гость (10/04/2013 13:23)   
Попробуйте взломать то, не знаю что.
Al-Qaida 'secret language' decoded[link8]
Гость (10/04/2013 13:38)   
Вероятно, вы сделали важное открытие и построили модель симметричного шифрования, которая обходит этот принцип, причём без дополнительных нежелательных эффектов.

У меня нет слабого места большинства шифров – ключевого расписания. Каждый раунд использует свою независимую часть ключа, раундов много и они не однообразны. Поэтому требуются длинные и случайные ключи. Дальше инфа только за деньги.
— SATtva (10/04/2013 13:42)   

Обратитесь в ФСБ. Государственная безопасность требует надёжных шифров.
Гость (10/04/2013 13:43)   
SATtva, согласен, приведенная ТС ссылка – школьный бред, за труды +, но вот выдавать за действующую криптосистему – кощунство.
Так вот, хотел спросить – тебе на глаза не попадались Open Source реализации на PHP, которые либо берут на себя подобный функционал шифрования сообщений?
И еще, на чем крутиться твой проект http://timemarker.org/ru/? Ну в плане, там же не на ПХП реализация?)
— unknown (10/04/2013 13:53, исправлен 10/04/2013 13:55)   
У меня нет слабого места большинства шифров – ключевого расписания. Каждый раунд использует свою независимую часть ключа, раундов много и они не однообразны. Поэтому требуются длинные и случайные ключи.

Тривиально, неэффективно, но допустим работает. Это недостаточное условие преодоления пороговой проблемы, когда количество операций на брутфорс < размера ключа. Лично мне известны по-крайней мере два других лимитирующих фактора и я не уверен, что это всё. Вероятно вы ушли намного дальше всех опубликованных исследований по этой теме.

— SATtva (10/04/2013 13:57, исправлен 10/04/2013 14:07)   
тебе на глаза не попадались Open Source реализации на PHP, которые либо берут на себя подобный функционал шифрования сообщений?

Server-side? Написать обёртку для gpg нетрудно (или взять из исходников движка сайта[link9]), вроде даже есть готовый модуль для PHP. Все минусы такого решения должны быть очевидны.


И еще, на чем крутиться твой проект http://timemarker.org/ru/ ?

Это не мой проект.

Гость (10/04/2013 14:13)   
Минусов полно, согласен. Но тем не менее, есть задача – онлайн переписка, где открыты будут лишь ссылки, ключи будут генерироваться отдельно, при необходимости. Раньше был сайт http://encrypt.se/, разработанный хакером Frans Pehrson, который, к сожалению его забросил. Обещал подкинуть мне исходники, но куда-то пропал. Поэтому хочу по-быстрому наваять себе для закрытого использования.
— unknown (10/04/2013 14:52)   
Cryptocat[link10]?
Его правда тоже критиковали за различные минусы.
— SATtva (10/04/2013 14:59)   

Основная критика была за javascript, раздаваемый с сервера. С тех пор программу переписали в виде браузерного расширения. К криптографической составляющей я нареканий не помню.
— sentaus (10/04/2013 15:08)   
http://timemarker.org/ru/

Судя по внешним признакам там .NET и BouncyCastle
Гость (10/04/2013 15:26)   
Cryptocat?

Ну там кроме минусов (которых кстати уже нет), это все-таки еще приложение для браузеров, его не залить на свой ресурс.

Судя по внешним признакам там .NET и BouncyCastle

Тоже не пойдет, нужно на PHP, ну максимум + Java.
— ressa (10/04/2013 21:07)   
Да, у Франса достойный ресурс был. Он, кстати мне тоже сорцы обещал подогнать. Подтверждаю его исчезновение))
По теме – интересно, сам не прочь бы посмотреть реализацию на php.
Гость (10/04/2013 23:46)   

И в чём они состоят?
— unknown (11/04/2013 09:54, исправлен 11/04/2013 09:57)   

Размер блока и внутреннего состояния функции шифрования.


Можно сделать ключ больше их (даже в стандартном AES это прописано), но это не защищает во всех сценариях использвания.


А при попытках их увеличить в рамках обычных способов конструирования шифров, число вычислительных операций для шифрования и прочие требования к ресурсам растут нелинейно. Опять же, большие размеры внутреннего состояния (блока) часто сами по себе не гарантируют стойкости.


Попытки сделать ещё DES без ключевого расписания с полностью независимыми ключами на каждый раунд тоже были. Помимо накладных расходов это не защищало от каких-то типов атак и было признано бесперспективным, первоисточники искать лень. Шифры с гетерогенными раундами тоже известны — MARS, CAST.

— Элис (11/04/2013 17:46)   
раундов много и они не однообразны

даже любопытно, какие разные преобразования мог придумать автор нового шифра)

без ключевого расписания с полностью независимыми ключами на каждый раунд

а такая схема не может оказаться хуже, в связи с возможностью дифференциальных атак на связанных ключах?
— unknown (11/04/2013 18:15)   
а такая схема не может оказаться хуже, в связи с возможностью дифференциальных атак на связанных ключах?

+1
Гость (11/04/2013 18:36)   
а такая схема не может оказаться хуже, в связи с возможностью дифференциальных атак на связанных ключах?
Такая схема не предпогалает иного использования кроме как шифрования данных на гарантированно случайном ключе. Связанные ключи, chosen key и прочее подобное находятся за пределами модели. Цель одна – шифровать данные. Настолько надежно насколько это возможно.
Рецепт успеха: очень сильно гетерогенные раунды, можно взять раунд-функции от всех известных шифров с подходящим размером блока, смешанная SP-сеть и сеть фейстеля (зависит от раунд функции в конкретном раунде), очень много раундов, не менее 128-256, в каждом раунде используется случайный независимый ключ. Если шифр используется в протоколе, ключ генерируем непосредственно ГСЧ, если в парольном шифровании – получаем с помощью KDF на гибриде из нескльких разных хэшей.
Модель атаки: у атакующего есть сам шифр, есть выходные данные и часть входных. Ключа нет, атакующему он полностью неизвестен и он никак не может влиять на его выработку. Задача – расшифровать неизвестную часть данных. В рамках такой модели использования (замечу, самой частой и самой нужной) предложенная мной схема заведомо сильнее всех академических шифров (и потенциально силнее простых каскадов, т.к. однотипные раунды не сгруппированы а идут вразбивку). Плюс можно добавить немного хитростей, таких как зависимость порядка применения раундов от дополнительных бит ключа. Получается бастион и нерушимая цитадель запертая на тысячу замков.
Гость (11/04/2013 18:59)   
Сейчас в криптографии пошла мода на простые, легкие, красивые и излишне универсальные конструкции. Это интересно с точки зрения теории, но до добра это не доведет, на мой взгляд запас "практической" стойкости слишком мал (достаточно малой ошибки в основе, на которую через 10 лет будет придумана атака нового типа, и привет).
Реально суперстойкая криптография для критических применений должна быть сложной, умопомрачительно сложной и тяжелой, не жалеючи вычислительных мощностей и мозгов теоретиков которые будут пробовать это ломать. Теоретические наработки набитые на академических шифрах несомненно должны быть использованы, но доверять одной лишь теории в долгосрочном сохранении секретов – безумие.
— ressa (11/04/2013 20:41)   
на мой взгляд запас "практической" стойкости слишком мал

т.е. Вы хотите сказать, что GPG уже грубо говоря изжил себя?

Реально суперстойкая криптография для критических применений должна быть сложной, умопомрачительно сложной и тяжелой

Есть пример подобного?
Гость (11/04/2013 22:24)   
не жалеючи вычислительных мощностей и мозгов теоретиков которые будут пробовать это ломать.
Гхм, эллиптические кривые чем вам не угодили?
Есть пример подобного?
Конечно есть, Гость (11/04/2013 18:36) сам его и придумал, но никому бесплатно не покажет, потому что он его запатентует и заработает много $$$
Гость (11/04/2013 22:28)   
Возьмите S-BOX на n входов, сделайте n=256 и будет вам счастие.
— unknown (11/04/2013 23:06, исправлен 11/04/2013 23:16)   

Думаю, что вот такое криптографоманство[link11] с вот такими изысками[link11], да у него там одни шедевры[link12] от некоего J.Savard местному автору не переплюнуть.


Зато его Cryptographic Compendium доступен бесплатно.


Скорее комманда криптоаналитиков не из свободного сообщества, а из агентства расковыряет это творчество и найдёт там невозможные дифференциалы или ещё чего-нибудь, чем выдаст что-то новое по известному в открытом сообществе шифру.


Безопасность через запутывание не сильно лучше безопасности через неясность.

— Вий (16/04/2013 07:27, исправлен 16/04/2013 07:27)   

MikeCoder, читайте статью Ханаанский бальзам[link3].

— unknown (16/04/2013 09:42)   
Уже советовали[link13].
Гость (05/05/2013 02:20)   
может, не по теме, но нашел нечто подобное:

www.w3.org/TR/WebCryptoAPI

Ссылки
[link1] https://www.pgpru.com/comment24310

[link2] https://www.pgpru.com/biblioteka/statji/sekretnostjbezopasnostjnejasnostj

[link3] https://www.pgpru.com/biblioteka/statji/hanaanskijjbaljzam

[link4] https://www.pgpru.com/comment52921

[link5] http://www.cs.umu.se/kurser/5DV020/HT08/handouts/lecture13.pdf

[link6] https://www.schneier.com/blog/archives/2011/04/schneiers_law.html

[link7] https://www.pgpru.com/comment19884

[link8] http://www.wnd.com/2009/11/116381/

[link9] https://www.pgpru.com/razrabotki/dvizhok/show?time=2012-12-04+00:03:49

[link10] https://en.wikipedia.org/wiki/Cryptocat

[link11] http://www.quadibloc.com/crypto/co0407.htm

[link12] http://www.quadibloc.com/crypto/co040705.htm

[link13] https://www.pgpru.com/comment62870