Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Информационная безопасность » Защита компьютерных систем » Info - Алгоритм отображения информации

Ответить
Настройки темы
Info - Алгоритм отображения информации

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Алфавит - перечень символов, встречающихся в текстах. Каждый символ в алфавите встречается только один раз. Алфавит содержит не только прописные и строчные буквы, но символы знаков препинания, пробел, символы перевода каретки, символы новой строки и т.п. Каждый символ в алфавите имеет адрес, который изменяется от 1 - первый слева символ в алфавите, до N - последний слева символ в алфавите.
Рассмотрим пример.
Пусть имеем два слова: Путин, Медведев. В этих словах имеются следующие символы: П, у, т, и, н, М, е, д, в. Этот набор символов называется собственным алфавитом слов Путин и Медведев.
Задача: Найти алгоритм отображения слова Путин через слово Медведев и алгоритм восстановления слова Путин из слова Медведев.
Решение: Возьмем алфавит, состоящий из всех символов русского и английского языка, знаков препинания, пробела. Всего 190 символов, т.е. N = 190. Порядок символов в алфавите - случайный.
Запишем собственный алфавит в следующем виде:
17, 100, 34, 35, 144, 190, 88, 66, 1
П, у, т, и, н, М, е, д, в
В первой строке указаны адреса символов собственного алфавита в общем алфавите. Во второй строке указан собственный алфавит.
Для преобразования буквы "П" в букву "М" сравним адреса букв "П" и "М". Это числа 17 и 190. Для отображения буквы "П" через букву "М" необходимо к числу 17 прибавить число 190-17=173 и по адресу 190 считать букву "М". Число 173 запишем в вектор на первое место, так как это число отображает первые буквы.
Для отображения буквы "у" через букву "е" сравним адреса букв "у" и "е". Это числа 100 и 88. Для отображения буквы "у" через букву "е" необходимо к числу 100 прибавить неизвестное число x, такое чтобы получилось число 88. Решаем уравнение 100 + x = 88, отсюда x = -12. Наша задача получить все положительные числа для отображения. Поскольку, у нас получилось -12 < 1, то прибавим к нему количество чисел в алфавите -12 + 190 = 178. Таким образом, второе число отображающее букву "у" в букву "е" будет равно 178. Это число мы запишем на второе место в вектор 173, 178. Адрес буквы "е" вычисляется следующим образом: 100 + 178 - 190 = 88.
Для отображения буквы "т" через букву "д" сравним адреса букв "т" и "д". Это числа 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.
Для отображения буквы "н" через букву "е" сравним адреса букв "н" и "е". Это числа 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.
Предположим, что нам известно слово Медведев, алфавит и вектор чисел 173, 178, 32, 156, 134. Посмотрим, что получится при восстановлении.
Находим адрес буквы "М" (первой буквы в слове Медведев) в алфавите. Это число 190. Поскольку при отображении мы прибавляли неизвестное число, то при восстановлении необходимо вычитать числа вектора. Вычтем из числа 190 первое число вектора 190 - 173 = 17. Поскольку число положительное, то по адресу 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 в алфавите находим букву "н". Пятая буква восстановлена. Всего восстановлено "Путин".
Числа в векторе использованы все, следовательно восстановление завершено. Количество чисел в векторе равно длине восстанавливаемой информации.
Если бы первое слово было больше второго, то при достижении конца слова при отображении, необходимо перейти к первому символу. Таким образом, осуществляется отображение через один единственный символ.
САМОЕ ВАЖНОЕ: адреса в алфавите должны начинаться с 1.
Поскольку на элементы алфавита никаких ограничений не накладывается, то в качестве элементов алфавита могут выступать байты, произвольные тексты, слова и т.п.
Можно использовать не один алфавит, а два и более.
Необходимым и достаточным условием для отображения произвольного текста через другой произвольный текст: Алфавит должен содержать собственный алфавит. Поскольку числа вектора зависят только от порядка следования символов в алфавите и не зависят от самих символов, то существует целый класс, равный факториалу от N, отображения одной и той же информации через другую одну и ту же информацию.
Этот алгоритм опубликован в 2009 г.

С уважением, автор.

Отправлено: 22:34, 21-02-2014

 


Компьютерный форум OSzone.net » Информационная безопасность » Защита компьютерных систем » Info - Алгоритм отображения информации

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Теория - Алгоритм Хаффмана eg01st Программирование и базы данных 4 03-11-2010 01:09
Загрузка компьютера без отображения информации на мониторе. Sergio471 Непонятные проблемы с Железом 4 03-02-2009 21:49
Алгоритм pauluss Программирование и базы данных 1 06-10-2006 10:53
Законы | Новая редакция ФЗ "Об информации, информатизации и защите информации" ArtemD Защита компьютерных систем 2 31-07-2006 11:58
Алгоритм Чуфа noname00.pas Программирование и базы данных 11 21-09-2002 00:48




 
Переход