Универсальный алгоритм отображения информации.

Автор
Опубликовано: 3647 дней назад ( 3 апреля 2014)
+1
Голосов: 1
АЛФАВИТ - перечень символов, встречающихся в текстах. Каждый символ в алфавите встречается только один раз. Алфавит содержит не только прописные и строчные буквы, но символы знаков препинания, пробел, символы перевода каретки, символы новой строки и т.п. Каждый символ в алфавите имеет адрес, который изменяется от 1 - первый слева символ в алфавите, до N - последний слева символ в алфавите.
Рассмотрим пример.
Пусть имеем два слова: Путин, Медведев. В этих словах имеются следующие символы: П, у, т, и, н, М, е, д, в. Этот набор символов называется собственным алфавитом слов Путин и Медведев.
Задача: Найти алгоритм отображения слова Путин через слово Медведев и алгоритм восстановления слова Путин из слова Медведев.
Решение: Возьмем алфавит, состоящий из всех символов русского и английского языка, знаков препинания, пробела. Всего 190 символов, т.е. N = 190. Порядок символов в алфавите - случайный.
Запишем собственный алфавит в следующем виде:
17=П, 100=у, 34=т, 35=и, 144=н, 190=М, 88=е, 66=д, 1=в
Здесь указаны адреса символов собственного алфавита в общем алфавите.
Для отображения буквы "П" в букву "М" сравним адреса букв "П" и "М". Это числа 17 и 190. Для отображения буквы "П" в букву "М" необходимо к числу 17 прибавить неизвестное число x, такое чтобы получилось число 190. Решаем уравнение 17 + x = 190, отсюда x = 173. Наша задача получить все положительные числа от 1 до N=190 для отображения. Поскольку, у нас получилось 1 < 173 < 190, то число 173 запишем в вектор на первое место, так как это число отображает первые буквы. Адрес буквы "М" вычисляется следующим образом: 17 + 173 = 190
Для отображения буквы "у" в букву "е" сравним адреса букв "у" и "е". Это числа 100 и 88. Для отображения буквы "у" в букву "е" необходимо к числу 100 прибавить неизвестное число x, такое чтобы получилось число 88. Решаем уравнение 100 + x = 88, отсюда x = -12. Поскольку, у нас получилось -12 < 1, то прибавим к нему количество чисел в алфавите -12 + 190 = 178. Таким образом, второе число отображающее букву "у" в букву "е" будет равно 178. Это число мы запишем на второе место в вектор 173, 178. Адрес буквы "е" вычисляется следующим образом: 100 + 178 - 190 = 88. Обратите внимание, что 100 + 178 = 278 > 190. У нас в векторе должны быть числа от 1 до 190. Поэтому необходимо из 278 вычесть 190.
Для отображения буквы "т" в букву "д" сравним адреса букв "т" и "д". Это числа 34 и 66. Для отображения буквы "т" в букву "д" необходимо к числу 34 прибавить неизвестное число x, такое чтобы получилось число 66. Решаем уравнение 34 + x = 66, отсюда x = 32. Таким образом, третье число в векторе, отображающее букву "т" в букву "д", будет равно 32. Это число мы запишем на третье место в вектор 173, 178, 32. Адрес буквы "д" вычисляется следующим образом: 34+32= 66.

Для отображения буквы "и" в букву "в" сравним адреса букв "и" и "в". Это числа 35 и 1. Для отображения буквы "и" в букву "в" необходимо к числу 35 прибавить неизвестное число x, такое чтобы получилось число 1. Решаем уравнение 35 + x = 1, отсюда x = -34. Поскольку, у нас получилось -34 < 1, то прибавим к нему количество чисел в алфавите -34 + 190 = 156. Таким образом, четвертое число отображающее букву "и" в букву "в" будет равно 156. Это число мы запишем на четвертое место в вектор 173, 178, 32, 156. Адрес буквы "в" вычисляется следующим образом: 35 + 156 - 190 = 1. Обратите внимание, что 35 + 156 = 191 > 190. У нас в векторе должны быть числа от 1 до 190. Поэтому необходимо из 191 вычесть 190.
Для отображения буквы "н" в букву "е" сравним адреса букв "н" и "е". Это числа 144 и 88. Для отображения буквы "н" в букву "е" необходимо к числу 144 прибавить неизвестное число x, такое чтобы получилось число 88. Решаем уравнение 144 + x = 88, отсюда x = -56. Поскольку, у нас получилось -56 < 1, то прибавим к нему количество чисел в алфавите -56 + 190 = 134. Таким образом, пятое число отображающее букву "н" в букву "е" будет равно 134. Это число мы запишем на пятое место в вектор 173, 178, 32, 156, 134. Адрес буквы "е" вычисляется следующим образом: 144 + 134 - 190 = 88. Обратите внимание, что 144 + 134 = 278 > 190. У нас в векторе должны быть числа от 1 до 190. Поэтому необходимо из 278 вычесть 190.
Предположим, что нам известно слово Медведев, алфавит и вектор чисел 173, 178, 32, 156, 134. Посмотрим, что получится при восстановлении.
Находим адрес буквы "М" (первой буквы в слове Медведев) в алфавите. Это число 190. Поскольку при отображении мы прибавляли неизвестное число, то при восстановлении необходимо вычитать числа вектора. Вычтем из числа 190 первое число вектора 190 - 173 = 17. Поскольку число положительное и меньше N=190, то по адресу 17 в алфавите находим букву "П". Первая буква восстановлена.
Находим адрес буквы "е" (второй буквы в слове Медведев) в алфавите. Это число 88. Поскольку при отображении мы прибавляли неизвестное число, то при восстановлении необходимо вычитать числа вектора. Вычтем из числа 88 второе число вектора 88 - 178 = -90. Поскольку число меньше 1, то необходимо прибавить число N=190. Получим -90 + 190 = 100. По адресу 100 в алфавите находим букву "у". Вторая буква восстановлена. Всего восстановлено "Пу".
Находим адрес буквы "д" (третьей буквы в слове Медведев) в алфавите. Это число 66. Поскольку при отображении мы прибавляли неизвестное число, то при восстановлении необходимо вычитать числа вектора. Вычтем из числа 66 третье число вектора 66 - 32 = 34. По адресу 34 в алфавите находим букву "т". Третья буква восстановлена. Всего восстановлено "Пут".
Находим адрес буквы "в" (четвертой буквы в слове Медведев) в алфавите. Это число 1. Поскольку при отображении мы прибавляли неизвестное число, то при восстановлении необходимо вычитать числа вектора. Вычтем из числа 1 четвертое число вектора 1 - 156 = -155. Поскольку число меньше 1, то необходимо прибавить число N=190. Получим -155 + 190 = 35. По адресу 35 в алфавите находим букву "и". Четвертая буква восстановлена. Всего восстановлено "Пути".
Находим адрес буквы "е" (пятой буквы в слове Медведев) в алфавите. Это число 88. Поскольку при отображении мы прибавляли неизвестное число, то при восстановлении необходимо вычитать числа вектора. Вычтем из числа 88 пятое число вектора 88 - 134 = -46. Поскольку число меньше 1, то необходимо прибавить число N=190. Получим -46 + 190 = 144. По адресу 144 в алфавите находим букву "н". Пятая буква восстановлена. Всего восстановлено "Путин".
Числа в векторе использованы все, следовательно, восстановление завершено. Количество чисел в векторе равно длине восстанавливаемой информации.
Если бы первое слово было больше второго, то при достижении конца слова при отображении, необходимо перейти к первому символу. Таким образом, осуществляется отображение через один единственный символ. Например, вектор для отображения слова "Путин" через один единственный символ "М" будет следующим: 173, 90, 156, 155, 46.
Вектор для отображения слова "Путин" в слово "Путин" будет следующим: 190, 190, 190, 190, 190.
ОБРАТИТЕ ВНИМАНИЕ, что величина чисел вектора зависят от порядка следования символов в алфавите. Количество различных алфавитов вычисляется как факториал от N. В нашем примере количество различных алфавитов равно 190! = 10 в степени 351. Это чудовищно много. Для сравнения отметим, что количество атомов во всей Вселенной не превосходит 10 в степени 80.
ОБРАТИТЕ ВНИМАНИЕ, что количество отображений слова "Путин" в слово "Путин" чудовищно много: 10 в степени 351. Похоже, что в живой природе используются именно наш алгоритм для воспроизводства себе подобных. Поскольку количество вариантов получения одного и того же результата чудовищно много, то из человека почти всегда получается человек, из мухи почти всегда получается муха. В качестве алфавита в живой природе, скорее всего используется геном, который у всех видов живых существ свой собственный.
ОБРАТИТЕ ВНИМАНИЕ, что алгоритм допускает отображение через один символ. Похоже, что в живой природе именно по этому алгоритму из одной единственной клетки восстанавливается организм. Кстати, количество вариантов восстановления информации из одного символа чудовищно много. В нашем примере это 10 в степени 351. Поскольку количество вариантов восстановления организма из одной клетки чудовищно много, то почти всегда из одной клетки восстанавливается организм без всяких изъянов.
САМОЕ ВАЖНОЕ: адреса в алфавите должны начинаться с 1.
ОБРАТИТЕ ВНИМАНИЕ НА СЛЕДУЮЩЕЕ: можно использовать не один алфавит, а два. Второй алфавит должен содержать те же самые символы, что и первый алфавит, но расположенные в другом порядке. В этом случае сравниваются адреса символов собственного алфавита в первом алфавите с адресами символов собственного алфавита во втором алфавите. При отображении первого слова во второе необходимо обращаться к первому алфавиту и вычислять адрес во втором алфавите. А при восстановлении из второго слова первого необходимо обращаться ко второму алфавиту и вычислять адрес в первом алфавите. Так возникает направление отображения. В живой природе широко используется половое размножение, основанное на использовании двух геномов. По-видимому, использование двух геномов создает направление развития вида живого существа.
ОБРАТИТЕ ВНИМАНИЕ НА СЛЕДУЮЩЕЕ: если первое слово "Путин" имеется, а второе слово отсутствует, то можно задавать вектор с числами от 1 до N, расположенными в случайном порядке и вычислять второе слово. Это вся теория шифрования. Если вектор имеет всего одно число, то отображение слова "Путин" через вектор приведет к подстановочному шифру: отображению другими символами. В этом случае можно использовать частотные словари для восстановления зашифрованного текста. Если числа в векторе встречаются по одному разу и количество чисел в векторе равно N, то зашифрованная информация представляет собой случайный набор символов с равномерным законом распределения. То есть это шум. И, наконец, если длина вектора равна длине отображаемой информации, то может получиться любая наперед заданная информация. Количество результатов зашифровки (расшифровки) одного и того же текста в один тот же зашифрованный (расшифрованный) текст чудовищно велико и равно факториалу от N при использовании одного алфавита с разным порядком следования символов, и равно квадрату от факториала от N при использовании 2 алфавитов с разными порядками следования символов.
ОБРАТИТЕ ВНИМАНИЕ НА СЛЕДУЮЩЕЕ: общий алфавит может содержать не все символы собственного алфавита. В этом случае при зашифровке (расшифровке) символ текста, отсутствующий в алфавите, можно без изменения записывать в зашифрованный (расшифрованный) текст. Таким образом, возможна зашифровка (расшифровка) не всех символов текста, а только выбранных. Это создает почти непреодолимое препятствие для влома, так как неизвестно является ли символ в зашифрованном тексте зашифрованным или нет.
ОБРАТИТЕ ВНИМАНИЕ НА СЛЕДУЮЩЕЕ: поскольку алгоритм отображения информации не симметричный (сложение и вычитание - это различные операции), то можно осуществлять повторное отображение (шифрование) почти бесконечное число раз (пока не начнут появляться повторные результаты).
ОБРАТИТЕ ВНИМАНИЕ НА СЛЕДУЮЩЕЕ: каким бы методом, кроме нашего, не была зашифрована (расшифрована) информация существует вариант зашифровки (расшифровки) информации по нашему методу с этим же самым результатом. Более того, вариантов зашифровки (расшифровки) чудовищно много. В этом смысле наш алгоритм является УНИВЕРСАЛЬНЫМ алгоритмом отображения информации и поиски новых способов шифрования являются бессмысленными и пустой тратой времени и денег.
ОБРАТИТЕ ВНИМАНИЕ НА СЛЕДУЮЩЕЕ: при использовании двух алфавитов в качестве второго алфавита может использоваться вектор, содержащий слова, предложения, картинки, произвольные наборы символов и т.п. В этом случае, зашифрованный текст будет состоять из последовательности элементов второго алфавита. Главное: элементы второго алфавита должны быть все различными и должен существовать способ находить и различать элементы второго алфавита в зашифрованном тексте. По-видимому, этот вариант используется при мышлении человека. Так как, структура знаний легко описывается через алфавиты с переменным числом различных по сложности элементов.
Поскольку на элементы алфавита никаких ограничений не накладывается, то в качестве элементов алфавита могут выступать байты и, соответственно, можно отображать один файл через другой файл независимо от размера файлов.
Необходимым и достаточным условием для отображения произвольной информации через другую произвольную информацию: Алфавит должен содержать собственный алфавит.
ОБРАТИТЕ ВНИМАНИЕ, что в биологических системах чисел нет. Но числа могут моделироваться чередованием химических или физических свойств в цепочке из белков, геном и т.п. Например, предположим что некоторые белки могут иметь положительный заряд, отрицательный заряд и нейтральный заряд. Предположим, что эти белки сцепляется в линию с шестью белками. Вот Вам пример моделирования числа в троичной системе исчисления. Кстати, по современным представления, информация в живых системах кодируется в троичной системе счисления. Моделируемая система счисления изоморфна системе счисления, применяемой нами при написании чисел на бумаге.
Этот алгоритм опубликован в 2009 г.
С уважением, Андрейчиков Николай Иосифович - автор, ученый.

Описание реализации алгоритма в файле программы.
Программу можно бесплатно скачать из Облачного хранилища Microsoft
http://1drv.ms/ORB2BF
AntiHacker.zip
Комментарии (1)
Mememe # 9 февраля 2018 в 16:33
Это гениально!