Принципиально новая система криптографии


Алоха всем заинтересовавшимся. Я 10 лет создавал свою криптографическую систему. Вышло неплохо. Сейчас мне нужен куратор по развитию проекта. Возможно сотрудничество с компанией PGP. Если мои предпосылки верны, то это полностью перевернёт всю мировую криптографию, поскольку идеи, использованные в системе, я нигде не встречал за год изучения классической криптографии. Она создана на полностью новых принципах идеологии и элементарных действиях. Что бы долго не объяснять я ниже приведу начало описания своей системы:

Здравствуйте. Начну с того, что я не уверен в первородности криптографических принципов изложенных ниже. Последних 10 лет я создавал свою криптографию (криптографию хаоса). Именно столько времени у меня ушло на выработку теории криптографии и разработку своего алгоритма. Но тут не говорится про мировую криптографию, а именно про мою криптографию со своей идеологией, принципами, правилами и требованиями (последнее особо отличается от общепринятых). Классическую изучаю только год, что помогло увеличить количество функций и стало основой для создания именно криптографической системы. Зачем вы это читаете? Для чего тратите своё драгоценное время? У меня есть ответы на эти вопросы. Если всё изложенное ниже соответствует видению в моей голове, то вы являетесь одни из первых свидетелей момента возвращения нас в 18-ый век, когда люди могли что-то скрыть, просто прошептав на ухо информацию своему собеседнику. Если я прав, то это открытие самое масштабное после открытия алгоритмов с открытым ключом. Если вы криптограф, перестаньте плевать в экран. Думаю, вы измените мнение, перечитав и обдумав текст. Вы мне нужны что бы убрать или же уменьшить все «если».
Так почему же я настолько уверен в «Chaos»? Современные алгоритмы построены на ограничениях, я же старался убрать этот недостаток. В «Chaos» количество циклов равно от 3 до бесконечности, ключ лежит в пределах от нескольких байт до бесконечности. В нём нет математических функций и его нельзя в них уложить. Он построен полностью на логических действиях. Опа! Заинтересовало? Нет, я не претендую на звание изобретателя на подобии Диффи и Хелмана, Эль-Гамаля или Рабина. Для этого нужно пройти этап становления алгоритма и изложенных в нём принципов. Так что сейчас мои самые хорошие друзья являются как раз криптоаналитики (взломщики систем шифровки данных). Они укажут на мои просчёты, после чего я сделаю окончательные изменения алгоритма. Но я им не завидую, поскольку думаю, что не оставил зацепок. А если и оставил, то данный вариант всё равно является, где то 100-ым. Мне не составит труда переделать его. Ладно. Хватит воду в ступе колотить. Приступим.
Криптоалгоритм “CHAOS”
Алгоритм состоит из двух модулей: модуля замены и модуля перестановки. Также есть способы управления этими модулями. Начнём из модуля замены. В нём могут использоваться разные типы информации. Чем больше количество символов, из которых состоит информация, тем больше максимальная длина таблицы-ключа. Рассмотрим эту систему на основе стандартных частиц информации – битах. Для примера, возьмём единицу информации размером в 2 бита. То есть количество символов, в такой системе, равняется 4-ём: (00), (01), (10), (11). Для простоты мы будем обозначать эти символы (1), (2), (3) и (4) соответственно.

Авторские права на систему защищены, на что имеется свидетельство.

Мои контакты:
e-mail: wwwm@i.ua
ICQ: 449502420

Комментарии
— SATtva (04/06/2010 22:30)   
Последних 10 лет я создавал свою криптографию (криптографию хаоса).

Обоже. Князь тьмы, Повелитель хаоса. :\

Авторские права на систему защищены, на что имеется свидетельство.

Да, это самое главное. Будем надеяться, внесли в реестр РАО.
— Bycufal (04/06/2010 22:34)   
Обоже. Князь тьмы, Повелитель хаоса. :\

Вы правы. Немного по детски. Но создавать я её начал ещё в 9-ом класе. Название не менял. Так и остало =). Но это поправимо.
— Bycufal (04/06/2010 22:39)   
К стате. Если ктото заинтересуется, то я её могу всю выложить... Там просто много изображенийй прийдётса добавлять... Время займёт. Если кого это заинтересует, то выложу.
— BrainSlug (04/06/2010 23:47)   
Денис Попов, Вы?
Теперь уже и за это взялись?
Гость (05/06/2010 00:27)   
Ну так выложите. А пока что, кроме высокопарных заявлений, и обсуждать-то нечего.

А эти заявления склоняет к подозрению, что вы являетесь эээ... носителем некоторого альтернативного мировоззрения, и потраченное вами тут время вряд-ли добавит вам единомышлеников.
— Bycufal (05/06/2010 00:33)   
К сожалению не имею представления кто такой Денис Попов. Ребят. Это действительно стоящая вещь. Я понимаю критическое отношение к подобному, особенно у професионалов. Но поверте, что с логикой у меня всё в порядке. Я далеко не дурак (по мнению большенства знакомых). Если бы это было что-то примитивное, то я бы не позорился. Мне 25 лет, имею высшее образование программиста. Завтра постараюсь изложить систему полностью. Мне просто нужно знать заинтересован ли в этом хоть ктото на вашем сайте. На других сайтах моей публикации уже ждут по полтора года, но они не имеют отношения к криптографии. Мне интересно ваше мнение.
— Bycufal (05/06/2010 00:35)   
Ну так выложите. А пока что, кроме высокопарных заявлений, и обсуждать-то нечего.

А эти заявления склоняет к подозрению, что вы являетесь эээ... носителем некоторого альтернативного мировоззрения, и потраченное вами тут время вряд-ли добавит вам единомышлеников.

Ладно. Тогда завтра выложу.
Гость (05/06/2010 01:13)   
Опиши что да как – а мы посмотрим.
— Bycufal (05/06/2010 13:53)   
Криптографический алгоритм "CHAOS"
Модуль замены
Алгоритм состоит из двух модулей: модуля замены и модуля перестановки. Также есть способы управления этими модулями. Начнем с модуля замены. В нем могут использоваться разные типы информации. Чем больше количество символов, из которых состоит информация, тем длиннее максимальная длина матрицы-ключа (пример 2-во битной системы таб.1). Рассмотрим этот алгоритм на основе стандартных частей информации – битах. Для примера, возьмем единицу информации размером в 2 бита. То есть количество символов, в алгоритме, равняется 4-ем: (00) (01) (10) (11).. Для простоты мы будем помечать эти символы (1), (2) (3) и (4) соответственно. Точнее:
Последовательность (00) мы заменяем на (1);
(01) на (2);
(10) на (3);
(11) на (4).
Таб.1 (матрица-ключ)

Далее то что будет размещено в фигурных скобках {}, не обязательно досконально запоминать, поскольку оно не особо влияет на понимание системы в целом. Текст лишь описывает способы трансформации битной информации под этот вариант таблицы. Эта трансформация вообще не обязательна, но мне так легче объяснить. Сконцентрируйтесь на понимании терминов: матрица-ключ, маркер-ключ, маркер-информации.

{{{Инструмент этого модуля – матрица-ключ, которая состоит из трех (или двух) частей:
1-я часть имеет символы замены, на которые должна измениться единица открытого текста. В интерпретации в программную среду, – 1-я часть не нужна. Возможное использование просто номера строки;
2-я часть – это матрица, которая используется в качестве символов сравнения для определения замены (или добавление операцией XOR, эта функция в дальнейшем будет опускаться для упрощения понимания, к тому же она немного меняет структуру шифровки) символа, который мы шифруем, на символ из 1-ой части таблицы. Она состоит из столбцов всех комбинаций без повтора символов (1), (2) (3) и (4);
3-я часть – состоит из так называемых маркер-ключей (столбцов). Его действие будет понятно из процесса зашифровывания. Он состоит из всех комбинаций с повторами символов (1), (2) (3) и (4), без повторов столбцов. Количество строк в этой части может быть разная. В данном случае я использую 3 строки. В случае с одной строкой 3-тя часть состояла бы из 4-ох столбцов, которые не повторяются. Если бы было 2 строки, то столбцов было бы 4*4=16. 3 строки уже создает 4*4*4=64 полностью разных столбцов. 64 – это первый вариант что нам подходит, потому что он охватывает больше 24-ох столбцов из 2-ой части матрицы-ключа. Но этих столбцов будут больше, чем столбцов из 2-й части. Выходим из ситуации следующим образом. Это могут быть и повторное присвоение (присвоение одной ячейке маркерных ключей несколько значений) и пропуски (незаполненные ячейки маркерных ключей) и много других. Все зависит от условий и требований к ключу. Я же в данном случае поступил следующим образом:
1) третья строка маркер-ключей состоит из четырех полноценных символов. К нему не применяются изменения;
2) Во второй строке существуют три символа (1) (2) (3). Если они и попадаются на нужной нам позиции в строке маркер-информации (символы в открытом тексте, которые равняются размеру маркер-ключа и располагаются относительно символа что шифруется, в этом примере справа), то их мы не изменяем. Но если на второй позиции маркера-информации, появляется символ (4), то я заменяю его на другой символ. В данном случае он равняется его остатку от деления номера позиции в глобальной строке открытого текста на 3 плюс 1. То есть: если на второй позиции маркер-информации встречается символ (4), и номер позиции, в строке открытого текста, будет равняться 14, то заменяем (4) на остаток от 14/3 плюс 1. Это выходит 3. Заменяем символ (4) на символ (3);
3) В 1-ой строке 3-ей части существуют 2 символа. При шифровке символы, которые стоят на первой позиции маркер-информации: парные мы заменяем на (2), а непарные на (1). Следует учесть, что мы не меняем маркерной информации в самой строке информации, а копируем его в буфер, и уже потом проводим над ним эти изменения. Этот изменённый маркер-информации мы будем сравнивать с соответствующим маркер-ключом из таблицы 1.}}}


Допустим нам нужно зашифровать открытый текст из 2 байт: "No". В двоичной системе он будет выглядеть так: "0100111001001111". Попробуем его зашифровать. Для простоты мы изменим слово на: "21432144" соответственно, как я показывал в начале описания. Точка, из которой начинается шифровка, определяется способом, который выбирается случайно и дописывается к ключу. Этот способ, для вычисления, использует тело ключа и так же может использовать саму информацию или любую другую информацию. В алгоритм можно вписать десятки таких способов или придумать самим и записать в алгоритм. Например: ключ переводится в десятичные цифры. Сочетают все цифры и делящиеся на количество символов информации. Остаток равняется номеру символа, из которого начинается шифровка. Для простоты будем начинать с первого символа.
Первый символ – (2). Теперь берем маркер-информации (это следующие три символа в открытом тексте после шифрованного символа). Сначала он будет выглядеть так: (143). Копируем его в буфер. После изменений, которые описаны выше, в описании 3-ей части таблицы, мы изменяем маркер-информации. Нет особенной значимости для криптографической стойкости, из какого пункта начинать изменения. Начнем с 3-го. Первый символ (1) непарный. Меняем его на (1). Поскольку второй символ (4), меняем его за формулой, описанной во втором пункте описания третьей части таблицы. Третья позиция, в открытом тексте, значит: остаток от 3/3 плюс один. Остаток равняется нулю, плюс один выходит (1). Заменяем (4) на (1). Третий символ остается без изменений из-за первого пункта изменения маркер-информации. Измененный вид маркер-информации будет выглядеть так: (113). Ищем маркер-ключ из третьей части таб.1, который отвечает этому маркерной информации. Это будет 3-й столбец. Ищем шифрованный нами символ (2) в 3-ом столбце 2-й части таб.1. Он находится в четвертой строке 2-й части таб.1. Заменяем наш символ (2) в открытом тексте на символ, который стоит в четвертой строке 1-й части матрицы. Это символ (4). Заменяем первый символ (2), в строке информации, на символ (4). Теперь наш открытый текст (по существу он уже есть частично шифротекстом) будет выглядеть так: "41432144". Аналогичным способом шифруем другие четыре символа, двигаясь вправо с шагом один символ (или 2 бита). В принципе шаг можно уменшить до одного бита, но что бы было проще понять оставим всё так как есть. Чтобы зашифровать последние три символа – используем первые символы. То есть, мысленно склеиваем края ленты открытого текста в круг или временно дописываем первых три символа к окончанию. В результате мы получим следующий вариант уже шифротекста: "43211431". Переведенным в двоичный вариант, эта зашифрованная фраза будет выглядеть: "1101100000111000". Следующим, необязательным, шагом будет шифровка таким же способом в другую сторону (нужно понимать что теперь символ, который мы шифруем, будет находиться правее маркерной информации). Точка начала шифровки, опять определяется одним из правил.
Здесь я показал основной цикл шифровки. В интерпретации в программную оболочку, первый цикл будет осуществляться несколько иначе. В нем символ, который мы шифруем, будет стоять с той стороны маркерной информации, в какую сторону будет идти шифровка. Это опасно с точки зрения криптостойкости. Дело в том, что тогда маркер-информации будет открыт после окончания цикла, то есть каждый шаг шифровки не будет изменять предыдущей маркер-информации, но это правило обязательно с точки зрения противостояния криптоанализу. Злоумышленник может вводить массивы информации из одних нулей, или других определенных массивов с циклическими данными и смотреть, что получаем на выходе (также этот шаг нужен для атак с выбранным шифротекстом). Такая ситуация удаляется обычной архивацией, но я думаю что и это можно будет как-то обойти обманув архиватор. В таком случае этот шаг уничтожит цикличность. Но даже тогда существует малая вероятность зацикливания самого алгоритма. Поэтому желательным дополнительным действием, к началу шифровки, может стать добавление случайно генерирующей так называемой "мусорной информации" к открытому тексту. Эту информацию можно побитовый равномерно рассеять (прибавить операцией XOR) по всему открытому тексту. После того когда шифротекст уже сгенерирован, мы добавляем эту случайно сгенерированную "мусорную информацию" к шифротексту в открытом виде. После расшифровки выполняется та же операция побитового добавления XOR, благодаря которому мы и будем иметь уже открытый текст. К тому же эта операция служит для того, что бы один и тот же текст, с одними и теми же параметрами шифровки, был разным после того, как его зашифруют. Это будет полезно для организаций, которые достаточно часто отсылают одинаковые пакеты данных.
"Сырьем" для маркера-информации может быть что угодно. Это не обязательно должен быть сам открытый текст. Это может быть какая-либо интернет статья, расположение которой, например, может быть передано по телефону, или фотография в электронном варианте. Примером использования этой особенности может быть ситуация, когда нет возможности передать матрицу-ключ. Поэтому она отсылается по почте, или вывешивается в "отрытую", а маркер-информации, или место его расположения, передается другим секретным способом (например: телефонным звонком), то есть физической передачи информации вообще не требуется. Все ограничивается одним э-мэйлом и телефонным звонком (в звонке можно сказать, что маркерной информации может быть какой-то стих А.С.Пушкина).
Это один из вариантов матриц-ключей. В зависимости от количества символов, используемых в самом процессе шифровки, изменяется и сама матрица-ключ, и способы ее изменения. Меняется также ее мерность, но ее всегда можно вывести в двумерное состояние. Меняется максимальный размер матрицы-ключа (благодаря пропускам в третьей и второй части матрицы-ключа, можно существенно уменьшить размер самого ключа, и увеличить, благодаря этому, криптостойкость). Не обязательно использовать даже символы. Можно использовать образы, или же совокупность символов, например 2 символа и еще один на позицию выше (11_1__). Что угодно, главное, что бы элементов было ограниченное количество.
Итак. Приступаю к описанию алгоритма пропусков. Это наиболее интересный элемент "Chaos". Он не только удалил проблему, связанную с тем, что 3-я часть имеет больше столбцов за 2-ю в матрице-ключе, но и усложнил криптоанализ (алгоритм расшифровки "Chaos" без знания ключа). Суть ее вот в чем. Если использовать, например, байтну систему (символ алгоритма будет занимать 8 бит), то матрица-ключ будет слишком большим. Он будет иметь 256! (факториал) столбцов. Это невероятно большое число. Для понимания приведу следующие значения:
2-ох битовая система имеет максимальное значение столбцов: 4!=24;
3-ох битовая: 8!= 40320;
4-ох битовая: 16!= 20922789888000;
5-ти битовая: 32!≈ 8488091513990113876361871360000000.
А этот ключ надо будет как-то переносить физически. На сегодня нет компактных носителей информации, способных уместить ключ однобайтной системы. Я уже молчу о дво- или трёхбайтной. Но благодаря этому алгоритму пропусков, мы сможем шифровать системы 2-ох, 3-ох и даже 4-ох байтные с помощью матрицы-ключа, которая будет занимать от нескольких килобит или даже нескольких сотен бит. При этом надежность алгоритма не только не снизится, но даже и повысится. Я все объясню на примере вышеупомянутой матрицы.
Из второй части мы можем удалять большинство столбцов, оставив только пару (от двух, хотя не рекомендую так мало). А в третьей части не нужно использовать деформацию маркерной информации и маркерных ключей, которую я описал выше, но для простоты понимания в данном примере я оставлю все как есть. Кроме того можно использовать третью часть таблицы (маркер-ключи) с любым количеством строк. Единственное ограничение, это то, что максимальное значение количества столбцов третьей части матрицы-ключа, в таком варианте, должно быть больше количества выбранных столбцов из второй части матрицы-ключа. В примере возьмем четыре случайных столбца из второй части. Для простоты я буду использовать четыре первых. Из третьей части таб.1 возьмем, скажем: 3,6,12 и 20-й столбцы. Матрица-ключ будет иметь следующий вид:
Таб.2

Не обязательно строить матрицу-ключ в таком порядке как я показал. При создании матрицы-ключа их можно перетасовывать произвольно. Это касается как столбцов из второй части, так столбцов и из третьей. Я уже создал алгоритм воссоздания матрицы-ключа такого типа из набора случайно сгенерированных данных. Но я его не буду описывать, дабы не осложнять понимание.
Зашифровывая предыдущее слово "21432144", мы берем первый символ (2). Маркерной информации будет (143). Превращаем маркер-информации, как я описывал выше. Выходит (113). Здесь никаких проблем не возникает. Такому маркеру-информации отвечает первый столбец маркер-ключей (третьей части таб.2). Выходит что символу (2) отвечает символ (2). Заменяем символ (2) в строке информации на символ (2) (здесь я рассуждаю с точки зрения компьютера, человек бы просто оставил все как есть). Теперь шифруем второй символ (1). Преобразованный маркерной информации будет иметь вид (232). Как мы видим, в таб.2 такого маркера-ключа в 3-ей части нет.
Таб.3

Поступаем следующим образом. Я назначил 3 границы, которые делят матрицу-ключ на 4-ри части. Границы я поставил перед маркер-ключами аналогичными 3-ей части из таб.2, кроме маркер-ключа из первого столбца. Что бы было понятнее, я обвел маркеры-ключи, по которым я рисовал границы, желтым цветом (в дальнейшем главные маркер-ключи). Эти главные маркер-ключи полностью отвечают маркер-ключам из таб.2. Первый главный маркер-ключ забирает себе больше площади, потому что если поставить границу перед первым главным маркер-ключом (аналогично другим трем), то
столбцы таблицы, которые идут до первого главного маркер-ключа не будут относиться ни к одной из площадей главных маркер-ключей (обведенных желтым).
Теперь вернемся к зашифровыванию. Наш преобразованный маркер-информации (232) отвечает маркер-ключу из зоны главного маркер-ключа (224). Любой маркер-информации, который попадет в определенную зону, заменяем на соответствующий главный маркер-ключ из этой зоны. То есть маркер-информации (232), мы заменяем на главный маркер-ключ (224). В столбце этого маркер-ключа в таб.2, символ (1) отвечает символу (1). Заменяем его в строке информации соответственно. Шифруем другие символы таким же способом.
Границы не обязательно расставлять так, как я показал, их можно расставлять в случайном порядке, главное, что бы они находились между соответствующими главными маркерами, а координаты этих границ дописывать к ключу. Но использование координат границ остается под вопросом. Единственная суть с них заметна при криптоанализе второго модуля. Это правило усложняет криптоанализ, но увеличивает размер ключа приблизительно наполовину. Следовательно, все надо математически обосновать. Здесь я не буду задействовать эту особенность.
Поскольку я нашел несколько механических и мелких логических ошибок во втором модуле, я начал его переделывать. К тому же хочу его оптимизировать для повышенного быстродействия. Он будет изложен в повторной защите. Но при этом скажу что не менее уникален и так же не имеет известных мне аналогов.
Еще я хотел бы задокументировать вариант блока хеширования паролей. Для этого мы будем использовать первый модуль замены и пирамидальный способ трансформации (отмечу, что тут возможно использование и второго модуля перестановок, но это будет ясно тогда, когда он будет переделан). Первым шагом будет увеличение введенного пароля пирамидальным способом.
Суть проста. Мы просто суммируем соседние биты операцией XOR. Результат записываем в следующую строку. Каждая новая строка на один бит будет меньше.

Для наглядного примера приведу пароль размером в один байт "N"="01001110". Вот как это выглядит:

Красным и желтым цветом я обвел продублированный введенный пароль. Красным он идет слева направо, а желтым снизу доверху. В данном варианте пирамида строится снизу вверх, то есть суммируются правый бит строки обведённой красным и нижний бит строки обведённым желтым. Результат записывается слева от нижнего бита обведённого желтым. Остальные бит-результаты также выводятся из соседних правых и нижних битов. В результате выходит верхняя строка: "011000000010111". Последний бит я пропустил, поскольку он вдвое сокращает количество потенциальных паролей криптоаналитику. Мы можем увеличивать пирамиду (в данном варианте трапецию) и в дальнейшем, используя конечный результат аналогично начальному паролю, дописывая его к пирамиде аналогично ряду обведенному желтым. Для этого не обязательно удалять последний бит, но в конечном результате, взяв окончательную строку, мы его удалим. Чтобы определить окончательный результат, мы берем строку под некоторым номером. Этот номер мы добудем из первичного пароля. Например, переведем ключ в десятичную интерпретацию и получим число, которое и будет номером строки (номер мы считаем снизу вверх). Соответственно достраивать трапецию будем до тех пор, пока недойдём до требуемого нормера строки. Для упрощения понимания будим использовать полученную верхнюю строку "011000000010111".
Генерация матрицы-ключа, аналогичной таб.2, будут происходить следующим образом с полученного результата. В строке "011000000010111" мы будем вырезать левую часть строки, начиная с первого символа. Размер отрезка будет определяться следующими правилами. Нам нужно такое количество бит, которое может указать на номер позиции любого из 24-ох столбцов таб.2. Одного, или 2-ох, или 3-ох, или 4-ох бит нам маловато. Они не охватывают элементы в количестве 24. То есть в двоичной системе максимальное значение одного бита могут быть десятичные цифры: (0,1). Всего 2 числа:

Битовые числа |Десятичные числа
0 | 0
1 | 1

Двух бит: (0,1,2,3). Всего 4 числа:
Битовые числа |Десятичные числа
00 | 0
01 | 1
10 | 2
11 | 3
Трех бит: (0,1,2,3,4,5,6,7). Всего 8 чисел:
Битовые числа |Десятичные числа
000 | 0
001 | 1
010 | 2
011 | 3
100 | 4
101 | 5
110 | 6
111 | 7
Но поскольку во всех этих значениях присутствуют еще и нули, а нулевых позиций здесь нет, то максимальное значение мы увеличиваем на единицу. Выходит:
1 бит- 2 имеет позиций;
2 бита- 4 позиций;
3 бита- 8;
4 бита-16:
5 бит- 32;
.
1, или 2, или 3, или 4 бита не охватят полностью значения "24". Первое количество бит, которое подходит, – это 5 бит. Максимальное значение 32. Следовательно, мы будем вырезать начало конечного результата пирамидальной трансформации по 5 бит.
Следовательно с "011000000010111" вырезаем "01100". Его десятичную интерпретацию "12" суммируем с единицей. Выходит что столбец, который будет стоять на первой позиции 2-ї части новообразованной матрицы-ключа, будет столбец из таб.1 под номером 13. Результат:
Конечный результат пирамидальной трансформации :
"0000010111";
Матрица-ключ:
Таб.4

Соответственно вырезаем части из конечного результата пирамидальной трансформации и производим аналогичные действия до тех пор пока в строке не останется менее пяти бит. Вот конечный результат пирамидальной трансформации после вырезаний:
"";
Матрица-ключ:
Таб.5

3-тю часть нашей матрицы-ключа мы заполняем аналогично. Для этого мы берем строку из дальнейшей пирамидальной трансформации. Для примера это может быть строка вдвое выше от взятого нами сначала. Или номер будет определяться какой-то другой функцией.
После этого, когда будет заполнена вся матрица-ключ, дальше будем шифровать ею сам пароль, или одну из строк пирамиды (она кстати для этого случая продолжается вниз, если пароль слишком велик для хеш-значения), номер строки при этом будет определяться одной из функций. Второй вариант позволяет скрыть размер самого пароля, когда криптоаналитик будет иметь доступ к сохраненному хеш-значення пароля, но без возможности его изменения. Это хеш-значення будет использоваться для идентификации пароля, или же для генерации новой матрицы-ключа.
Хочу отметить, что в вариантах когда для нахождения хеш-значення будет шифроваться другая заблаговременно известная информация, а не сам пароль, то в создании матрицы-ключа (таб.5) будет использоваться и сама эта информация. Пример этого варианта я не буду приводить, поскольку демонстрационная модель приведена выше.
— Bycufal (05/06/2010 14:34)   
Как видите ни схем Файстелтя, ни AES-овский квадрат не был исползован. Математические функции не используются вообще. Размер ключа может быть любой. Информация может шифроватся даже не битная а символьная... Нету избыточности. Жду коментариев.
— Aim (05/06/2010 16:00)   
Что в этом алгоритме нового?
Управляемые подстановки? Так они были придуманы задолго до DES, и в DES использованы.
Описание перестановок так и не нашел.

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

О "хеш-функции", сравни резульаты:
10001010000
-1001111000
--101000100

11100110

0010101
011111
10000
1000
10001010001
-1001111001
--101000101

11100111

0010100
011110
10001
1001
10001010010
-1001111011
--101000110

11100101

0010111
011100
10010
1011
10001010011
-1001111010
--101000111

11100100

0010110
011101
10011
1010 И все поймешь...
Гость (05/06/2010 17:02)   
Ещё никто не запостил ссылку на FAQ?! Тогда я первый: тыц[link1] :)
— Bycufal (05/06/2010 17:43)   
Что в этом алгоритме нового?
Управляемые подстановки? Так они были придуманы задолго до DES, и в DES использованы.
Описание перестановок так и не нашел.

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

Я затрудняюсь в решении отвечать или нет на этот коментарий. Дело в том что то про что вы говорите это S-блоки. Я прав? Дело в том что всё это не только не похоже на них, но и вобще не содержит никаких перестановок. А в DES все подстановки используют операцию XOR (да и то суммирование подключей с половиной блока одного раунда), что я вообще не использую. Выдернуть из контекста только пирамидальный способ трансформации, это не самая лучшая идея, поскольку это только один из элементов хеш функции про которую я вообще не хочу говорить, поскольку я защитил её на всякий случай и она не является ведущей идеей. Я неплохо разбираюсь в алгоритмах (ну более менее, я не имею образование криптографа). С DES Нет ничего общего. Может если бы вы подробнее обьяснили что вы имеете введу.
— Bycufal (05/06/2010 17:45)   
Ещё никто не запостил ссылку на FAQ?! Тогда я первый: тыц :)

Вы правы... Но всё же попытаюсь развить идею. Дочитаю пост когда протрезвею =р.
— aim (05/06/2010 18:02)   
А в DES все подстановки используют операцию XOR (да и то суммирование подключей с половиной блока одного раунда), что я вообще не использую.

В DES: S1-box:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

Производится подстановка 4 бит согласно таблице подстановки и 2-м управляющим битам (00,01,10,11).
Другими словами на входе скажем 4бит – "05", и управляющие 2-бит "01", тогда результат "02".

В вашем алгоритме:
чтобы зашифровавть число 2 из строки "21432144" бурутся управляющая строка,которая следует за "2" – "143" правращается в "113" и по таблице находится столбец с "113" далее получем за таблицей подстановки 2->4.

Так вот такая идея придумана задолго до DES, и сама по себе не имеет никакого практического значения и очень уязвима.
А так как вы берете "143" после числа 2 а не перед, то после зашифровки первих 4 чисел вы уже не сможете расшифровать первное число, даже зная ключ.
— SATtva (05/06/2010 18:13)   
Денис Попов, Вы?
Теперь уже и за это взялись?

Весь день мучился тем же вопросом.
Гость (05/06/2010 19:38)   
Денис Попов, Вы?
К сожалению не имею представления кто такой Денис Попов.
Почему бы вам не познакомиться[link2]? Кстати, почему бы вам не посотрудничать с другими ребятами? У нас уже были, например: раз[link3] и два[link4].
— aim (05/06/2010 23:53)   
4-ох битовая: 16!= 20922789888000;

Вот как раз в DES и используют S-box в 4 бит.
И понятно что никто не использует все возможные варинаты из 16! возможных.
Выбраны только некоторые, аналогично вашей
Таб.2

Опять же в этой идее ничего нового нету...

Вобщем ничего нового в этом вашем "изобретении" нет и конечно же оно не
перевернёт всю мировую криптографию
.
Гость (06/06/2010 01:40, исправлен 06/06/2010 18:39)   
Вслед за принципиально новой ОС появились принципиально новый графический редактор PIMP, принципиально новый веб-сервер Papache, принципиально новый IM протокол XMPoPov, принципиально новое ядро Pinux, принципиально новый конкурент XMPoPov PICQ, принципиально новый трекер Porrent, протокол обмена файлами popov2popov, принципиально новый мессенджер PutIM, принципиально новые сети Pi-Fi и Pluetooth. А также рабочие столы Pnome, PusDE, PLUXBOX, плеер Popov's MPlayer, интернет popopov, язык программирования PoHPov и CMS Piki.
http://juick.com/739317
— Bycufal (06/06/2010 09:34)   
В DES: S1-box:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

Производится подстановка 4 бит согласно таблице подстановки и 2-м управляющим битам (00,01,10,11).
Другими словами на входе скажем 4бит – "05", и управляющие 2-бит "01", тогда результат "02".

В вашем алгоритме:
чтобы зашифровавть число 2 из строки "21432144" бурутся управляющая строка,которая следует за "2" – "143" правращается в "113" и по таблице находится столбец с "113" далее получем за таблицей подстановки 2->4.

Так вот такая идея придумана задолго до DES, и сама по себе не имеет никакого практического значения и очень уязвима.
А так как вы берете "143" после числа 2 а не перед, то после зашифровки первих 4 чисел вы уже не сможете расшифровать первное число, даже зная ключ.

О ужос.Во первых. Что бы система была похожа на S-блоки мне нужно:
-Удалить вторую часть вообще (поскольку именно она является ключевой информации в сочетании с третьейчастью).
-Раздуть первую часть то на что оно меняетсо.
-Сделать матрицу ключ статичной (одноразмерной).
-Если я это всё1 сделаю, то нада потом поменять все элементы и правила взаимодействия под эти изменения.
Результат: какаято фигня которая вообще криптграфической сути не несёт.
Имхо. S-блоки примитив. Это я и сам знаю. Но что тут общего. Убейте не пойму.
— Bycufal (06/06/2010 09:48)   
Почему бы вам не wwwпознакомиться? Кстати, почему бы вам не посотрудничать с другими ребятами? У нас уже были, например: раз и два.

Ознакомился. =) Спс.
Посотрудничал бы, но не с кем.
— Bycufal (06/06/2010 10:02)   
Так ребята. Давайте искать уязвимости. Процес поиска уязвимостей занимал следующие действия: искалось любое ограничение, которое может послужить зацепкой для взлома. Тоесть не сам готовый алгоритм (по любому даже если я не смогу его создать, то ктото другой поумнее по любому создаст), а лиш ограничение, которое хоть как то можно использовать. Скажем даже предчуствие уязвимости заставляло менять всю систему. Найдите для начала хоть одно агрничение в системе. Криптоаналитики... Вас же полно на сайте. Если в системе нет ничего нового, то вообще труда не составить придумать хоть примерный план взлома...
— Bycufal (06/06/2010 10:26)   
Я пожму руку любому человеку, который покажет мне где тереотически может скрыватсо уязвимость. Это даст мне новый повод для изысканий. Позволит сделать алгоритм лучше. Мне по душе посидеть что нибудь поизобретать.
— aim (06/06/2010 12:38)   
Убейте не пойму.

Главные слова.
-Удалить вторую часть вообще (поскольку именно она является ключевой информации в сочетании с третьейчастью).

Твоя так называемая "2-я чaсть" и есть аналогом тех таблиц подстановки ДЕС, как например строка:
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7

таких таблиц в ДЕС 4*8=32.
таблицы делятся на группы по 4-ре, которые соответственно нумеруются 0 (00),1(01),2(10),3(11). И в зависимости от управляющих бит выбирается таблица подстановки из 4-х.
У тебя же роль управляющих бит играют 3 числа... Если ты считаешь, что принципиально набор чисел 0,1,2,3 отличается от твоих наборов 000,001,002,003,...,334, то мне просто нету смысла с тобой говорить, так как это тоже самое что спорить с человеком для которого 2+2=5.

Далее,
допустим есть таблица примитивной подстановки
0-2
1-3
2-1
3-4
4-0
допустим хочем зашифровать число 2, тогда ищем число в левой части (как это делается в ДЕС) и заменяем число 2 на 1, согласно таблице.
Так вот если есть таблица
0-4
1-2
2-0
3-1
4-3
Например тоже нужно зашифровать 2, ищем 2 в правой части ( так как делаешь ты) и вуаля, 2 заменяем на ту же 1.
Есть разница?) Да никакой.
Просто в первом случае программно представить более удобно, и код будет работь быстрее. Поэтом в ДЕС такое представление и используют.
С точки зрения криптографии данные таблицы идентичны.

Если ты заблудился в трех соснах – ну что ж бывает.
Правда отличительной чертой таких вот горе-криптографов есть безграничная вера в иновационность своего изобретения и исключительную его полезность.

О криптостойкости просто нечего говорить, так как твоя ситема не рабочая, ты ее не сможешь расшифровать:
допустим шифруем строку
"1203242123"
1. 1 заменяем согласно управляющим числам 203.
2. 2 заменяем – 032.
3. 0 заменяем – 32(4).
4. и т.д.
5. доходим к 1 (3-я с конца строки). для нее вектор берем, согласно твоему описанию, 23( после 1) и 1 с начала строки.
6. шируем 2 (2-я с конца), для нее 3 и 12 с начала строки.
7.шируем 3 (последнее число), для нее управляющим числом будет начало строки 120.
Получаем скажем строку:
"2310021412"
Последнем числом зашифрован последнее число открытого текста "3".
чтобы расшировать 2 нам нужно знать управляющие числа "120", но их у нас нету, так как они находяться в открытом тексте, а в шифр тексте они зашифрованы строкой "231", но чтобы ее расшифровать нам нужны цифры левее от нее, которых у нас тоже нет. В итоге, получатель сообщения не может расшифровать сообщеня, деже зная ключ (твою матрицу-ключ).
Это тоже самое что зашифровать одноразовым болкнотом, а далее блокнот уничтожить.
— aim (06/06/2010 12:43)   
И опять же повторюсь, все то что я описал выше, знали еще до Второй Мировой воыйны, и ничего принципиально нового в этом нету.
— Bycufal (06/06/2010 13:51)   
Итак. Начну разгребать с конца.

О криптостойкости просто нечего говорить, так как твоя ситема не рабочая, ты ее не сможешь расшифровать:
допустим шифруем строку
"1203242123"
1. 1 заменяем согласно управляющим числам 203.
2. 2 заменяем – 032.
3. 0 заменяем – 32(4).
4. и т.д.
5. доходим к 1 (3-я с конца строки). для нее вектор берем, согласно твоему описанию, 23( после 1) и 1 с начала строки.
6. шируем 2 (2-я с конца), для нее 3 и 12 с начала строки.
7.шируем 3 (последнее число), для нее управляющим числом будет начало строки 120.
Получаем скажем строку:
"2310021412"
Последнем числом зашифрован последнее число открытого текста "3".
чтобы расшировать 2 нам нужно знать управляющие числа "120", но их у нас нету, так как они находяться в открытом тексте, а в шифр тексте они зашифрованы строкой "231", но чтобы ее расшифровать нам нужны цифры левее от нее, которых у нас тоже нет. В итоге, получатель сообщения не может расшифровать сообщеня, деже зная ключ (твою матрицу-ключ).
Это тоже самое что зашифровать одноразовым болкнотом, а далее блокнот уничтожить.


Всё бы было так, если бы мы брали маркер-информации с открытого текста. Но это не так. Маркер-информации берётся с шифротекста в буфере, который постоянно меняется. Каждый следующий шаг затирает предыдущий маркер-информации. Но остаётся постоянно последний. Это единственны "открытый" маркер-информации (это в случае, когда маркер-информации справа от шифруемого символа и шифрование идёт в право с шагом один). Все остальные будут открыватся в процессе разшифровки.Я бы показал на примере, но спешу по делам. Да у вас и так всё получится. Просто используйте не начальный текст, а шифротекст для марекр-информации. А на счет отличительных характеристик от S-блоков, я постараю продолжить дискусию вечером. Но смысл действий S-блоков совершенно другой (не смотря на то что кажется иначе). Нужно только придумать как лучше донести эту информацию.
Гость (06/06/2010 14:06)   
Так ребята. Давайте искать уязвимости

Уважаемый товарищ. Если вы называете себя программистом, тогда вам не составит труда скачать вот это[link5] ПО, прогнать выходы своих алгоритмов через эти тесты, сообщить нам результаты. Почитаем с интересом, а там будет понятно, что делать дальше.Цените свободное время других.
Гость (06/06/2010 14:11)   
З.Ы. Кодировка слетела, интересно почему.Вот та ссылка http://en.wikipedia.org/wiki/Diehard_tests
— Bycufal (06/06/2010 14:15)   
Так вот если есть таблица
0-4
1-2
2-0
3-1
4-3

Браво. Всё так и есть. Толь вот сколько вариантов таких таблиц есть вообще? У меня 24 таблицы только в дво битной системе. Еще есть трёх битная, четырёх->бесконечность. Я когдато подщитывал и чтото примерно для пятибитного варианта максимальная длина ключа составляла чтото в раёне 1Тбайт. А благодаря пропускам можно использовать даже двухбайтные системы с ключами в несколько сотен бит. А знаете сколько нужно перребрать разных вариантов что бы найти нужный ключ. БЕСКОНЕЧНОЕ количество вариантов. Тоесть есть у нас Солнце. На подбор одного вариантов ключа нужно минимальное количество энергии. Даже если всю галактику переработать на эту энергию и то не хватит.
32 варианта S-блоков. Так вы говорили... Да вы что издеваетесь. 32 варианта таких примтивных таблиц по сути:
0-4
1-2
2-0
3-1
4-3

А у меня сколько? Ооо.. Да их же бесконечное множество. Потому что в системе НЕТ ограничений. Символы любые, ключ любого размера. Как выже сказали операции самые простые. Ну так это только плюс. Что вы подбирать то будете, если даже размера ключа не знаете??? Извините, но я скорее уже соглашусь что я использую некоторые действия, похожие к действиям S-блоков. Но у самолёта и лексуса тоже есть колёса. Но на одном летают, а на другом ездят. Разница же очевидно по результатам на выходе.
— Bycufal (06/06/2010 14:19)   
Уважаемый товарищ. Если вы называете себя программистом, тогда вам не составит труда скачать wwwвот это ПО, прогнать выходы своих алгоритмов через эти тесты, сообщить нам результаты. Почитаем с интересом, а там будет понятно, что делать дальше.Цените свободное время других.

Ок. В свободное время просмотрю.
— aim (06/06/2010 15:23)   
32 варианта S-блоков. Так вы говорили... Да вы что издеваетесь. 32 варианта таких примтивных таблиц по сути:
0-4
1-2
2-0
3-1
4-3

А у меня сколько? Ооо.. Да их же бесконечное множество. Потому что в системе НЕТ ограничений.

Я так и думал))))
Учись обобщать... Я привел самый простой пример, такой же пример можно привести для 2, 3, 4 или 150 таблиц. Это не меняет сути.

Для особо одаренных:

1. Принцип реализованный в ДЕС:
//0-1-2-3-4
0|1-3-2-4-0
1|3-1-4-0-2
2|1-3-2-0-4
3|0-2-4-3-1
Теперь, нам нужно зашифровать "2" и у нас управляющие биты равны 3(11). находим 2 в верхней строке, далее в 4-й таблице(которая у нас под номером 3(11)) находим 2->4.
1. Принцип реализованный в принципиально новом алгоритме:
//0-1-2-3-4
A|1-0-2-1-3
B|3-1-4-0-2
C|1-3-2-1-4
D|0-4-1-3-2
Где верхняя строка – твоя таблица 1,
справа (А,В,С..)-таблица 3. (управляющие числа).
Теперь, нам нужно зашифровать "2" и у нас управляющие биты равны D(или можно сказать что D=скажем (231)), находим 2 в строке D, смотрим на первую строку (твою таблицу 1) и снова вуаля, получается что 2->4.
Как это? оО. Выходит принципиально инновационный алгоритм всего лишь часть DES?)))
Тоже что поменять названые ОС и выдавать за свою))))

Насчет твоего аргумента что у тебя таких таблиц много:
и что с того? сделай их 10000, и где ты их будешь хранить?)
Думаешь разработчики ДЕС этого не знали? Думаешь они такие ограниченные люди что не могли понять как использовать множество таблиц? А ты вот такой гений додумался?)))
Гость (06/06/2010 17:45)   
Найдите для начала хоть одно агрничение в системе. Криптоаналитики... Вас же полно на сайте. Если в системе нет ничего нового, то вообще труда не составить придумать хоть примерный план взлома...
/comment33273[link6], /faq/kriptografijaobschievoprosy#h37247-13[link7]
Так почему же я настолько уверен в «Chaos»?
Теории хаоса, которыми пытались моделировать лавины тоже кстати в криптографии как-то не прижились.
/comment4341[link8]
— Bycufal (06/06/2010 18:09)   
Насчет твоего аргумента что у тебя таких таблиц много:
и что с того? сделай их 10000, и где ты их будешь хранить?)
Думаешь разработчики ДЕС этого не знали? Думаешь они такие ограниченные люди что не могли понять как использовать множество таблиц? А ты вот такой гений додумался?)))

Ох. Ну и трудно. Это не статичная таблица. Она генерируется с случайной информации. Она может генерироватся с любого пароля. Она вообще нигде не хранится, а хранится случайная информация (ключ). Когда нада чтото зашифровать или розшифровать, то она из ключа воссоздаётся. Мне не нада их хранить сотнями тысяч. А говорил я про варианты таких ключей при подборе. Если не знать параметров ключа (хотябы размер), то перебор идёт в безконечность.
//0-1-2-3-4
A|1-0-2-1-3
B|3-1-4-0-2
C|1-3-2-1-4
D|0-4-1-3-2

Да. Я перкрасно понимаю принцып использования S-блоков. Хотя нет. Это же DES украли идею у пифагора. Таблицу Пифагора помниш? А что? Похоже.
Сейчас все современные системы используют схему строений Файстеля. Так они же все одинаковые? А сколько общего у DES и например RC6? Да они вообще разные. Хотя используют схожие инструменты. Вся разница в структуре, даже последовательность действий полностью меняет алгоритм.
В криптографии есть только 2 функции: замена и перестановки. Никто ещо не придумал ничего другого и скорее всего не придумает. Замена и перестановка являются инструментами.
Ты заявляеш что внешне мой алгоритм и DES-совские S-блоки похожи. Они использут схожие инструменты, но суть же в них разная. Да последовательность действий разная, результат вообще даже близко не лежит около S-блоков. Мой алгоритм это набор алфавитных замен с идентификатором. Алгоритм полностью динамичен, подвижен и одаптивен под любой вид информации. Даже набор функций не тот.
Скажи. Как с помощью S-блоков можно зажифровать не битную информацию?
Скажем символами информации будут 256 рунн или иероглифов... Никогда S-блоки с этим не справятся, потому что суть то разная и принцып работы. А мой алгоритм справится.
— aim (06/06/2010 18:20)   
В Туфише тоже не статические таблицы? И что с того? В этом новизна?

Скажи. Как с помощью S-блоков можно зажифровать не битную информацию?
Скажем символами информации будут 256 рунн или иероглифов... Никогда S-блоки с этим не справятся, потому что суть то разная и принцып работы. А мой алгоритм справится.

Зачем?))))
Это никому не нужно... Те твои 256 рун можно представить в виде байтов и все) В Юникоде например, хоть руны, хоть клинопись.
Но если ты думаешь, что представив рунами ты усилишь криптостойкость – ты глубоко ошибаешся.

Так в чем же новизна твоего принципиально нового алгоритма?)
Как уже ты понял использование управляемых подстановок – не твоя идея.

Так что же там нового? представление таблиц не в байтах?) Ну это на нобелевку тянет.
А до комп эры в чем информацию представляли? И шифровали ее в чем?)
Думаешь тогда управляемых перестановок не использовали?)
Таблиц не было?)))
— Bycufal (06/06/2010 18:24)   
Найдите для начала хоть одно агрничение в системе. Криптоаналитики... Вас же полно на сайте. Если в системе нет ничего нового, то вообще труда не составить придумать хоть примерный план взлома...

/comment33273, /faq/kriptografijaobschievoprosy#h37247-13

Так почему же я настолько уверен в «Chaos»?

Теории хаоса, которыми пытались моделировать лавины тоже кстати в криптографии как-то не прижились.

/comment4341

Так что у меня вообше нет шансов быть услышанным? Я так понял покране мери не здесь (я в хорошем смысле). Что же. Надо искать связи. Я пока только такой выход вижу.
Ну ок. У меня уже поменялся смысл вывешивания алгоритма здесь. Какие вообще соображения есть? Что мне со всем этим делать? Стоит ли старатся вывешивать на различных форумах и дальше?
— aim (06/06/2010 18:26)   
Что мне со всем этим делать?

Учится, учится, учится и еще много раз учится.
— Bycufal (06/06/2010 18:32)   
Зачем?))))
Это никому не нужно... Те твои 256 рун можно представить в виде байтов и все) В Юникоде например, хоть руны, хоть клинопись.
Но если ты думаешь, что представив рунами ты усилишь криптостойкость – ты глубоко ошибаешся.

Так в чем же новизна твоего принципиально нового алгоритма?)
Как уже ты понял использование управляемых подстановок – не твоя идея.

Так что же там нового? представление таблиц не в байтах?) Ну это на нобелевку тянет.
А до комп эры в чем информацию представляли? И шифровали ее в чем?)
Думаешь тогда управляемых перестановок не использовали?)
Таблиц не было?)))

Конешно же я не собираюсь шифровать рунами =)). Это я показал на разницу в функциях одинаковых, на твой взгляд алгоритмов.
А что нового? Ну что же. Если всё таки алгоритм окажется силён (на что я искренне надеюсь, я для того и вывешиваю его что бы понять силён он или нет), и получитсо так что всё таки войдёт в мировую практическую криптографию, то он ну оочень котрастно будет смотрется среди сегодняшних стандартов построеных на схеме Файстеля. Стронг алгоритм при отсутствии мат. функций и схемы Файстеля. По моему схема Файстеля используется гдето с 70-ых, если я не ошибаюсь. До сих пор на ней всё и построено. Вот и новизна. Так сказать отличие.
— Bycufal (06/06/2010 18:33)   
Учится, учится, учится и еще много раз учится.

Клянусь что не когда не перестану)))).
— aim (06/06/2010 18:40)   
По моему схема Файстеля используется гдето с 70-ых, если я не ошибаюсь. До сих пор на ней всё и построено. Вот и новизна. Так сказать отличие.

Далеко не все алгоритмы используют сеть Фестеля. Тот же АЕС не использует, и что с того?)))
В этом тоже нету новизны.
— Bycufal (06/06/2010 18:41)   
Хорошо aim. Если опустить слова "принципиально новая", "нестандартная" и ид. тп (это вас слишком зацепило). Что вы скажете об алегоритме? Вот что меня интересует. Силён он или нет. Если нет то где могут крытсо уязвимости и к какому с типов атак он наиболее предрасположен?
— aim (06/06/2010 18:44)   
Сколько раундов и сколько таблиц использовать?
— Bycufal (06/06/2010 19:00)   
Берётся одна таблица и только одна. Всегда. Генерируется из случайно сгенерированой информации (в програмной интерпритации в демонстративной модели я в ручную создавал таблицу, дабы не писать модуль генерации). Должно быть минимум 2 раунда. Первый раунд сбивает цикличность (маркер-информации слева от шифруемого символа, сшагом 2 бита или один символ вправо). Если цикличность после этого не пропала (такое может быть ооочень редко, при определённых ситуациях положения элементов в таблице), то этот раунд повторить. Второй раунд стандартный (маркер-информации справа от шифруемого символа, шаг в право на один символ).
— aim (06/06/2010 19:06)   
Должно быть минимум 2 раунда.

Хорошо, с раундами определились – их 2.

Теперь – сколько столбцев в таблице 2?
Сколько строк в таблице 1?
Гость (06/06/2010 19:25)   
[offtop]
Как гласят нормы пользования[link9] этим сайтом
все материалы (включая документы, их редакции, комментарии, сообщения в форуме), размещаемые на сайте с 15 января 2008 года и особо не оговаривающие используемую лицензию, распространяются на условиях лицензии CreativeCommons Attribution-ShareAlike 3.0 Unported
Отсюда вопрос, может ли фраза "Авторские права на систему защищены, на что имеется свидетельство" считаться особым оговариванием используемой лицензии?
[/offtop]
— aim (06/06/2010 19:32)   
Ага щяс... все кинулись патентовать)))))
Кому нужен этот бред?)
Разве что в учебных целях – пример того как нельзя создавать шифры.

Так какие размерности в таблице?

Кота в мешке уж точно нет желания анализировать...
Гость (06/06/2010 19:45)   
Почему руководство ресурса не закрывает такие топики?
— Следящий (06/06/2010 20:09)   
А зачем тогда нужен ресурс? Кто разбирается – оспаривает автора, кому не нравится – проходит мимо, кто не разбирается – либо идет мимо, либо учится. Разве не так? Тема то вроде в рамках форума?
— unknown (06/06/2010 20:39)   

Звучит уже пугающе, но если кто-то испугался потрясения основ криптографии: дальше оказывается, что это лишь симметричный алгоритм, проектов коих тысячи. Да ещё и спутанный с собственным режимом шифрования.
Ну да, чего мелочиться в выборе партнёров. Но насколько известно, в PGP corp. не занимаются теоретическими исследованиями. Только реализацией готовых стандартов и немного продвижением своих, но протоколов, а не алгоритмов-криптопримитивов.
Если мои предпосылки верны, то это полностью перевернёт всю мировую криптографию, поскольку идеи, использованные в системе, я нигде не встречал за год изучения классической криптографии.

Последних 10 лет я создавал свою криптографию (криптографию хаоса). Именно столько времени у меня ушло на выработку теории криптографии и разработку своего алгоритма.

Десять лет жизни и упорного труда. Автор за десять лет исследований так и не узнал даже список дисциплин, которые изучаются при проектировании криптоалгоритмов, поскольку он "нигде не встречал". Печальная история.
Конечно, ложная скромность настоящим учёным только мешает.
Так почему же я настолько уверен в «Chaos»? Современные алгоритмы построены на ограничениях, я же старался убрать этот недостаток. В «Chaos» количество циклов равно от 3 до бесконечности, ключ лежит в пределах от нескольких байт до бесконечности.

Это величайшее достижение! Обоснование принципов вычислительной стойкости отныне объявляется ненужным. Достаточно тупо гениально просто увеличивать параметры алгоритма (что кстати можно делать и при традиционных алгоритмах).
В нём нет математических функций и его нельзя в них уложить. Он построен полностью на логических действиях. Опа! Заинтересовало?

Гениально, алгебра логики и булева алгебра не нужны! И раздел абстрактной алгебры, описывающий свойства перестановок, пусть дураки изучают. Открыт (внезапно) какой-то новый раздел математики. Оказывается, что комбинации манипуляций с таблицами и линейными операциями (XOR) не могут быть описаны математически. Это сенсация, вас ждёт успех.
Точка, из которой начинается шифровка, определяется способом, который выбирается случайно и дописывается к ключу. Этот способ, для вычисления, использует тело ключа и так же может использовать саму информацию или любую другую информацию. В алгоритм можно вписать десятки таких способов или придумать самим и записать в алгоритм.

Каждый алгоритм обычно придумывается как потенциальный стандарт. Предлагается один способ, но на который автор ставит все свои усилия. Потенциальным исследователям не морочат голову разнообразием несовместимых вариантов реализации. Но ради такого уникального автора исследователи конечно же будут изучать тысячи вариантов переработок и увёрток.
Например: ключ переводится в десятичные цифры. Сочетают все цифры и делящиеся на количество символов информации. Остаток равняется номеру символа, из которого начинается шифровка. Для простоты будем начинать с первого символа.

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

Не, ну так совсем нечестно. Вдруг вы же уже сами догадываетесь, что функция шифрования вашего алгоритма нестойка к известному/подобранному открытому тексту, но предлагаете исправить это архивированием. Кто будет что-то из всего остального воспринимать всерьёз? А понятно — это оставлена возможность для бэкдора, чтобы супералгоритмом не пользовались всякие кто-попало.
Поэтому желательным дополнительным действием, к началу шифровки, может стать добавление случайно генерирующей так называемой "мусорной информации" к открытому тексту. Эту информацию можно побитовый равномерно рассеять (прибавить операцией XOR) по всему открытому тексту.

Это называется вектор инициализации. Его не надо никуда рассеивать. Обосновано, доказано в массе работ по анализу режимов шифрования.
Это будет полезно для организаций, которые достаточно часто отсылают одинаковые пакеты данных.
"Сырьем" для маркера-информации может быть что угодно. Это не обязательно должен быть сам открытый текст. Это может быть какая-либо интернет статья, расположение которой, например, может быть передано по телефону, или фотография в электронном варианте. Примером использования этой особенности может быть ситуация, когда нет возможности передать матрицу-ключ. Поэтому она отсылается по почте, или вывешивается в "отрытую", а маркер-информации, или место его расположения, передается другим секретным способом (например: телефонным звонком), то есть физической передачи информации вообще не требуется. Все ограничивается одним э-мэйлом и телефонным звонком (в звонке можно сказать, что маркерной информации может быть какой-то стих А.С.Пушкина).

Вектор инициализации (IV) во все режимах шифрования передаётся в открытую. Он должен быть рэндомизированным (генерироваться случайно). Но у автора похоже нет понятия о различии режимов шифрования и собственно алгоритмов шифрования (криптопримитивов). Решил смешать всё в одном. Зато предлагаются какие-то увлекательные шпионские игры с получением случайного числа из стихов Пушкина вместо /dev/urandom.
Мы вначале вашего заявления это уже слышали. Поняли, что все ваши методы исключительно уникальные и выдающиеся.
Суть проста. Мы просто суммируем соседние биты операцией XOR. Результат записываем в следующую строку. Каждая новая строка на один бит будет меньше.

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

Если не рассматривать предложенные отбрасывания (они не так принципиально меняют картину):
Например, у если поменять последний бит в исходном пароле, то поменяется только последний бит в конце сжатия. Если только первый — то только первый на выходе.
Автор умеет абстрагироваться от законов математики — круто! При том, что все эти проблемы изучены в алгебре. Для этого есть теория групп, колец, полей и т.д. На всякий случай перевод из двоичной системы в десятичную для выбора стобцов не является биективным преобразованием. Ну как не старайтесь. И из пяти бит энтропии вы не сможете выбирать равновероятно 24 столбца в рамках обратимого блочного шифра. У вас статистика поедет уже на этом этапе. И если построить таблицы дифференциального распределения пар текстов, то будет видно, что уже один раунд алгоритма проигрывает известным нормально спроектированным алгоритмам. Наконец, использование сжатия больших таблиц в малые необоснованно (по крайней мере рискованно) с точки зрения атаки невозможных дифференциалов. Это если алгоритм вообще будет работать. Из путанного объяснения, как отметили выше непонятно, как можно использовать открытый текст для преобразований в целом блоке шифртекста, упаковывая его в этот же шифртекст.

Даже если алгоритм работает, выводы о принципиальной новизне и (не)нужности также сделаны высказавшимися выше.
Гость (06/06/2010 20:48)   
Почему руководство ресурса не закрывает такие топики?
На pgpru – демократия свобода слова, чем он разительно и отличается от других форумов с недалёким модераторским корпусом :)
Гость (06/06/2010 21:12)   
Если всё таки алгоритм окажется силён (на что я искренне надеюсь, я для того и вывешиваю его что бы понять силён он или нет), и получитсо так что всё таки войдёт в мировую практическую криптографию, то он ну оочень котрастно будет смотрется среди сегодняшних стандартов построеных на схеме Файстеля. Стронг алгоритм при отсутствии мат. функций и схемы Файстеля.
У вас, как и у каждого "гения изобретателя от народа", слишком высокая мания величия. Запомните на оставшуюся жизнь: техническое образование, характерное для инженеров, конструкторов, программистов совершенно не годится для занятий наукой, которой, в частности, является криптография, хотя "гении" всегда выходят из именно этих кругов (технических институтов). Чтобы понимать что к чему в математике/криптографии, на это нужно угробить всю свою жизнь, начиная с ранней молодости – на это не способен никто кроме тех, кто занимается этим профессионально (т.е. это его хлеб). К примеру, вот[link10] программа по математике. Много оттуда знает нематематик, если выпускник мехмата МГУ в лучшем случае знает первые 2 курса из 5ти?
— Bycufal (06/06/2010 21:28)   
Вуффф горчишник. То что нужно. Спс за критику. Именно из-за этого я и создал тему.
Уже обресовывается картина что и как надо менять.
Что такое вектор инициализации я в курсе. Не привык ещё к терминологии.
Алгоритм работает. Есть кривая програмная реализация (нада доделать нормальную) и она работает как на шифрование так и разшифрование. Текст отправляется на доработку. Некоторые блоки будут переделыватся. Нужно собрать статистику и сделать определённые выводы с доказательствами. Некоторые моменты будут упрощены.
Будут ещо конструктивные коменты?
— SATtva (06/06/2010 21:44)   
Почему руководство ресурса не закрывает такие топики?

Жуёт попкорн, ловит лулзы.
— SATtva (06/06/2010 21:51)   
Поэтому желательным дополнительным действием, к началу шифровки, может стать добавление случайно генерирующей так называемой "мусорной информации" к открытому тексту. Эту информацию можно побитовый равномерно рассеять (прибавить операцией XOR) по всему открытому тексту.

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

А если мусорная информация истинно случайна и равна длине открытого текста, то всё совсем хорошо, и принципильно новый алгоритм шифрования делает своё чёрное дело.
— Bycufal (06/06/2010 21:53)   
Гением я себя никогда не щетал, не щетаю, и не собираюсь. Познаний действительно не хватает. Пытался найти в своём городе хоть какогото маломальского криптографа, 4 института обшарил. Нету. Материала в книжных магазинах тоже нету. Поэтому с вами и консультируюсь.
Но вера в алгоритм пока никак не пошатнулась. Я один знаю для чего там каждый шаг, каждое правило. И полное осознание алгоритма требует времени.

Хорошо, с раундами определились – их 2.

Теперь – сколько столбцев в таблице 2?
Сколько строк в таблице 1?

Столбцов берите сколько хотите. В том и суть системы. она может использовать любой размер. количество строк в 3-ей части должно просто охватывать количество столбцов (максимальное значение маркер-ключей должно быть больше или равно количеству столбцов).
Гость (06/06/2010 22:43)   
Материала в книжных магазинах тоже нету.
И из интернета все книги по криптографии исчезли? Ужас.

Гением я себя никогда не щетал, не щетаю, и не собираюсь.
Если всё изложенное ниже соответствует видению в моей голове, то вы являетесь одни из первых свидетелей момента возвращения нас в 18-ый век, когда люди могли что-то скрыть, просто прошептав на ухо информацию своему собеседнику. Если я прав, то это открытие самое масштабное после открытия алгоритмов с открытым ключом
...
Гость (06/06/2010 22:46)   
А если мусорная информация истинно случайна и равна длине открытого текста, то всё совсем хорошо, и принципильно новый алгоритм шифрования делает своё чёрное дело.
http://ru.wikipedia.org/wiki/Шифр_Вернама – просвещайтесь :)
— SATtva (06/06/2010 22:49)   
Шифр_Вернама – просвещайтесь :)

Как?! Тоже не принципиально новый? Ну воооот... :(
Гость (06/06/2010 23:20)   
SATtva, не чавкайте так громко попкорном :) Я же хотел услышать мнение самого Автора, а вы предвосхищаете! (-:
Гость (06/06/2010 23:28)   
Это такой акт коллективной педофилии любви к детям: смотреть как ребёнок новичок в криптографии познаёт реальный мiр.
Гость (06/06/2010 23:57)   
Даже ведущие криптографы часто отказываются например от таких вещей, как создание новых шифров ("слишком большой вызов", "слишком амбициозная задача") и сосредотачиваются на решении каких-то других вопросов.

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

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

Здесь есть некоторый уровень предвзятости, но это естественно, чтобы отсеять лишнее и не тратить ресурсы исследователей впустую.
/faq/kriptografijaobschievoprosy#h37247-12[link1]
— SATtva (06/06/2010 23:59)   
Гость (06/06/2010 23:20), автору достаточно немного переформулировать моё высказывание, чтобы сделать его принципиально новым. :)
— Bycufal (07/06/2010 10:57)   
wwwhttp://ru.wikipedia.org/wiki/Шифр_Вернама – просвещайтесь :)

Ииии. Шифр одноразового блокнота. Самая классическая схема шифрования. Наверное нету ниодного издания по криптографии, в котором он не освещался в первых же параграфах. Вот только длина ключа = длине шифротекста.
/faq/kriptografijaobschievoprosy#h37247-12

Уже бросали ссылку в самом начале.
Ладно. Я понял конструктивизм закончился. Жаль только увидел мало коментов на щет самого алгоритма. В основном претензии были к тексту изложения.
Гость (07/06/2010 14:25)   
2Bycufal:
Русский тоже подтяните, пригодится статьи писать
— poptalk (07/06/2010 19:25)   
Жаль только увидел мало коментов на щет самого алгоритма.

Тут такое дело, что много и не надо, это же не политические дебаты. Я читал в комментарии aim, что ваш алгоритм нерабочий. Уже этого одного достаточно, чтобы прекратить обсуждение.
— aim (07/06/2010 22:33)   
Ну наконец-то ТС понял, что ничего нового в его принципиально новом алгоритме нету, и он так и не перевернет мир криптографии.

Чем он занималься 10 лет – непонятно)

Вот описание, представленное ТС:
Чтобы зашифровать последние три символа – используем первые символы. То есть, мысленно склеиваем края ленты открытого текста в круг или временно дописываем первых три символа к окончанию. В результате мы получим следующий вариант уже шифротекста: "43211431".

Хотя он позже в своих постах несколько раз "передывал" принципиально новый алгоритм в зависимоти от тех ошибок, на которые ему указывали.
Начал говорить, что последние 3 цифры берутся из шифртекста. Затем заявлял что на первом раунде с открытого, на втором из шифр текста.
Туман)

Похоже ТС хочет чтобы его принципильно неновый алгоритм переделали... и научили уму разуму. Нет, чтобы в ВУЗ поступить, 5-6 лет отучиться...

Вот молодежь пошла :(

Если будет настроение, посмотрю на выходных алгоритм.
Пока ничего криптостойкого там не увидел.
Пару подобранных отрытых текстов, несколько уравнений и с принципиально новым справится класический криптоанализ.
— Bycufal (08/06/2010 12:28)   
Сколько личностного сарказма...
Вот описание, представленное ТС:

Чтобы зашифровать последние три символа – используем первые символы. То есть, мысленно склеиваем края ленты открытого текста в круг или временно дописываем первых три символа к окончанию. В результате мы получим следующий вариант уже шифротекста: "43211431".


Хотя он позже в своих постах несколько раз "передывал" принципиально новый алгоритм в зависимоти от тех ошибок, на которые ему указывали.
Начал говорить, что последние 3 цифры берутся из шифртекста. Затем заявлял что на первом раунде с открытого, на втором из шифр текста.
Туман)

Да. Закралась техническая ошибка при написании текста. Недосмотрел. Во всех случаях идентификатор (маркер-информации берётся с шифротекста).
Гость (08/06/2010 20:25)   
Ага, "опечатка" ещё скажите :)
— aim (10/06/2010 22:47)   
Bycufal (08/06/2010 12:28) профиль/связь <#>
комментариев: 25 документов: 1 редакций: 0

Да. Закралась техническая ошибка при написании текста. Недосмотрел. Во всех случаях идентификатор (маркер-информации берётся с шифротекста).

Опять же, похоже многоуважаемый автор принципиально новой криптосистемы не понимает о чем говорит.

Если брать управляющие биты с шифр текста нужно начальное значение, упоминание о котором я не нашел в постах автора.

Для автора:
есть открытый текст "21342534654765",
шуфруем первое число "2", берем управляющие биты и находим "2" в таблице по номеру управляющих бит.
Что-то забыли. Что? А какие же те биты? Где их взять?)
Нестыковочка)
— SATtva (15/06/2010 18:21)   
Знакомьтесь.

Бывший банкир из Абу-Даби Мохаммад Гейт бин Махах Аль Мазруи разработал шифр, который, как он заявляет, невозможно взломать.

Шифр под названием "Код Абу-Даби" создан на основе группы символов, придуманных самим Аль Мазруи. В его коде каждая буква заменена специально изобретенным символом, и эти символы не принадлежат ни одному из известных в мире языков. Для работы над шифром, который Аль Мазруи называет "абсолютно новым", разработчику понадобилось полтора года.

По словам энтузиаста, создать свой собственный код под силу каждому, а сложность шифра определяет длина его ключа. Считается, что в принципе при наличии желания, определенных навыков и соответствующего программного обеспечения практически каждый, даже самый сложный шифр может быть взломан. Однако Аль Мазруи уверяет, что его творение не поддается взлому и является на сегодня самым надежным шифром. "Расшифровать документ, закодированный "Кодом Абу-Даби", практически невозможно", – уверен Аль Мазруи.

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

http://www.securitylab.ru/news/394789.php
Гость (16/06/2010 05:25)   
... когда пироги начинает печь сапожник, а сапоги – пирожник ...

Ссылки
[link1] http://www.pgpru.com/faq/kriptografijaobschievoprosy#h37247-12

[link2] http://lurkmore.ru/Денис_Попов

[link3] http://www.pgpru.com/forum/kriptografija/metodpoiskaprostyhchisel

[link4] http://www.pgpru.com/forum/kriptografija/pprostye

[link5] http://ru.wikipedia.org/wiki/Тесты_DIEHARD

[link6] http://www.pgpru.com/comment33273

[link7] http://www.pgpru.com/faq/kriptografijaobschievoprosy#h37247-13

[link8] http://www.pgpru.com/comment4341

[link9] http://www.pgpru.com/proekt/pravila#h35-5

[link10] http://imperium.lenin.ru/~verbit/MATH/programma.html