Перейти к содержанию
VikDemak

Дарю алгоритм отображения информации

Recommended Posts

VikDemak

Алфавит - перечень символов, встречающихся в текстах. Каждый символ в алфавите встречается только один раз. Алфавит содержит не только прописные и строчные буквы, но символы знаков препинания, пробел, символы перевода каретки, символы новой строки и т.п. Каждый символ в алфавите имеет адрес, который изменяется от 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 г.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
VikDemak
Алфавит - перечень символов, встречающихся в текстах. Каждый символ в алфавите встречается только один раз. Алфавит содержит не только прописные и строчные буквы, но символы знаков препинания, пробел, символы перевода каретки, символы новой строки и т.п. Каждый символ в алфавите имеет адрес, который изменяется от 1 - первый слева символ в алфавите, до N - последний слева символ в алфавите.

Рассмотрим пример.

Этот алгоритм опубликован в 2009 г.

Это нужно вот для чего:

Новый способ хранения персональных данных

В базе данных персональные данные должны сохраняться в следующем виде:

1) Вымышленные персональные данные, которые по внешнему виду не отличимы от действительных персональных данных. Например, реальная фамилия Петров может храниться в виде фамилии Медведевский или Obama или любой другой. Размер реальной фамилии и размер вымышленной фамилии между собой никак не связаны.

2) Набор целых чисел от 1 до 65535 в количестве, равному размеру реальных персональных данных. Например, для фамилии Петров - это 6 чисел, так как в фамилии Петров 6 букв, примерно таких: 111, 75, 71, 29, 100, 211.

Больше ничего в базе данных не должно сохраняться.

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

Адреса букв в алфавите и реальные буквы между собой никак не связаны.

Если хакеры украдут из базы данных вымышленную фамилию Медведевский или Obama и украдут набор чисел 111, 75, 71, 29, 100, 211, то восстановить реальную фамилию Петров не смогут, так как отсутствует алфавит. А украсть алфавит из оперативной памяти практически невозможно.

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

Как видите, украсть персональные данные невозможно, так как их попросту нет. Кража вымышленных персональных данных в этом случае бессмысленна. Под персональными данными мы понимаем в том числе пароли, логины, аккаунты и т.п.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Сергей Ильин

VikDemak, метод изобретательный, по сути это шифрование с ключем в виде алфавита. В связи с этим вопрос. Зачем применять этот метод, если можно просто зашифровать данные стойким и проверенным алгоритмом? В чем выигрыш вашего метода?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Сообщения

    • rownong
      Здравствуйте. Есть следующая инфраструктура (VPS куплены у хостинг-провайдера).  VPS сервер 1.
      На нем:
      - Несколько баз данных MySQL 
      - Папки (с сайтами, веб-приложениями, скриптами)
      - Установленные программы
      > Панель управления Vesta
      > MySQL-сервер
      > PhpMyAdmin
      > FTP-сервер
      - Задачи крона VPS сервер 2.
      На нем:
      - Asterisk (с конфигурациями) В перспективе VPS сервер 3.
      На нем будет располагаться ERP организации (база данных, бекенд Laravel, фронтенд Vue.js).  Нужно обеспечить безопасность данной IT инфраструктуры, закрыть максимум уязвимостей.
      Чтобы злоумышленники не могли, просмотреть / украсть: пароли в конфигах PHP скриптов, данные БД Таблиц MySQL, не имели доступ к  Asterisk, данным ERP, защита от sql инъекций, DDoS-атак и т.д. Вопросы: 1. В представленной инфраструктуре, каких технические специалисты должны делать аудит ? PHP-программист, системный администратор, или есть отдельные специалисты которые занимаются безопастностью в IT? 2. Я правильно понимаю, что выполнение задачи будет разбито на 2 этапа:
      - аудит (когда будут выписаны замечания)
      - реализация мер по устранению замечаний
      ?? 3. Как выбрать аудиторов?
      Достаточно фрилансеров или нужно обращаться в организацию? 4. Как определить компетенции аудиторов в обеспечении безопасности в IT? 5. Имеет смысл  нанимать сразу 2-х аудиторов?
      Потом реализовывать замечания обоих аудитов? 6. В какой формате проводятся аудиты по безопасности?
      Нужно будет прислать специалистам доступы ко всем системам? 7. Целесообразно делать аудит VPS без аудита офисного железа (компьютеры, роутеры, файловый сервак)?
      Теоретически на компьютерах могут быть уязвимости к вирусам которые доступы крадут от VPS, но проверять еще компы всей организации, сильно увеличит время на аудит.  
    • Draft
      К Сереге лысому, моему другу, приходят и жалуются, мол разводят их как лохов
    • Quincy
      К тебе именно приходит и на сайт жалуется?)))) 
    • Зотов Тимур
      Здравствуйте. Мне помог тренинг http://games4business.ru/product/vedenie-peregovorov . Менеджеры стали более уверены в себе, не бояться отвечать на вопросы и не впадают в панику при отказе клиента, а наоборот пытаются сделать все чтоб он передумал.Компания Лаборатория Деловых Игр качественно и профессионально составляют различные тренинги, которые действительно помогают компаниям процветать и развиваться.
    • PR55.RP55
      https://github.com/dragokas/hijackthis/blob/devel/src/_ChangeLog_ru.txt Стоит прочесть и найти полезное. Типа: Добавлена зачистка зависимостей легитимных служб от удаляемой службы.
      Добавлен запрет программе на перезагрузку серверных ОС с запросом к пользователю сделать это вручную.
      Добавлена проверка типа виртуализации ключей реестра.
×