id: Гость   вход   регистрация
текущее время 15:50 20/04/2024
Автор темы: Bycufal, тема открыта 04/06/2010 22:24 Печать
Категории: криптография, алгоритмы, симметричное шифрование
https://www.pgpru.com/Форум/Криптография/ПринципиальноНоваяСистемаКриптографии
создать
просмотр
ссылки

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


Алоха всем заинтересовавшимся. Я 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


 
На страницу: 1, 2, 3, 4, 5 След.
Комментарии
— SATtva (04/06/2010 22:30)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Последних 10 лет я создавал свою криптографию (криптографию хаоса).

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

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

Да, это самое главное. Будем надеяться, внесли в реестр РАО.
— Bycufal (04/06/2010 22:34)   профиль/связь   <#>
комментариев: 25   документов: 1   редакций: 0
Обоже. Князь тьмы, Повелитель хаоса. :\

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

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

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

Ладно. Тогда завтра выложу.
— Гость (05/06/2010 01:13)   <#>
Опиши что да как – а мы посмотрим.
— Bycufal (05/06/2010 13:53)   профиль/связь   <#>
комментариев: 25   документов: 1   редакций: 0
Криптографический алгоритм "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)   профиль/связь   <#>
комментариев: 25   документов: 1   редакций: 0
Как видите ни схем Файстелтя, ни 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?! Тогда я первый: тыц :)
— Bycufal (05/06/2010 17:43)   профиль/связь   <#>
комментариев: 25   документов: 1   редакций: 0
Что в этом алгоритме нового?
Управляемые подстановки? Так они были придуманы задолго до DES, и в DES использованы.
Описание перестановок так и не нашел.

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

Я затрудняюсь в решении отвечать или нет на этот коментарий. Дело в том что то про что вы говорите это S-блоки. Я прав? Дело в том что всё это не только не похоже на них, но и вобще не содержит никаких перестановок. А в DES все подстановки используют операцию XOR (да и то суммирование подключей с половиной блока одного раунда), что я вообще не использую. Выдернуть из контекста только пирамидальный способ трансформации, это не самая лучшая идея, поскольку это только один из элементов хеш функции про которую я вообще не хочу говорить, поскольку я защитил её на всякий случай и она не является ведущей идеей. Я неплохо разбираюсь в алгоритмах (ну более менее, я не имею образование криптографа). С DES Нет ничего общего. Может если бы вы подробнее обьяснили что вы имеете введу.
— Bycufal (05/06/2010 17:45)   профиль/связь   <#>
комментариев: 25   документов: 1   редакций: 0
Ещё никто не запостил ссылку на 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 чисел вы уже не сможете расшифровать первное число, даже зная ключ.
На страницу: 1, 2, 3, 4, 5 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3