2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Дарю алгоритм отображения информации
Сообщение22.02.2014, 10:45 


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

 Профиль  
                  
 
 Re: Дарю алгоритм отображения информации
Сообщение22.02.2014, 16:41 
Заслуженный участник


09/09/10
3729
Теперь для тех, кому лень сквозь это продираться: автор просто вычитает строчки друг из друга, пользуясь биекцией $\Omega\to\mathbb Z_N$, $a_k\mapsto k$ — обратите внимание, что $\mathbb Z_N$ он представляет в виде $\{1,2,\dots,N\}$ вместо более привычного $\{0,1,2,\dots,N-1\}$. Результат такого записывается не словом над $\Omega$, а вектором над $\mathbb Z_N$. Кроме того, при вычитании/сложении короткие строчки неявно заменяются префиксом нужной длины своей бесконечной итерации.

Ну и что тут такого нового? Это еще программисты на Фортране умели делать.

-- Сб фев 22, 2014 17:47:30 --

И точно — в 1966 году delta encoding уже было "prior art": https://docs.google.com/viewer?url=pate ... 524926.pdf .

 Профиль  
                  
 
 Re: Дарю алгоритм отображения информации
Сообщение27.02.2014, 14:20 


22/02/14
16
Joker_vD в сообщении #829476 писал(а):
Теперь для тех, кому лень сквозь это продираться: автор просто вычитает строчки друг из друга, пользуясь биекцией $\Omega\to\mathbb Z_N$, $a_k\mapsto k$ — обратите внимание, что $\mathbb Z_N$ он представляет в виде $\{1,2,\dots,N\}$ вместо более привычного $\{0,1,2,\dots,N-1\}$. Результат такого записывается не словом над $\Omega$, а вектором над $\mathbb Z_N$. Кроме того, при вычитании/сложении короткие строчки неявно заменяются префиксом нужной длины своей бесконечной итерации.

Ну и что тут такого нового? Это еще программисты на Фортране умели делать.

-- Сб фев 22, 2014 17:47:30 --

И точно — в 1966 году delta encoding уже было "prior art": https://docs.google.com/viewer?url=pate ... 524926.pdf .

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

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

В базе данных персональные данные должны сохраняться в следующем виде:
1) Вымышленные персональные данные, которые по внешнему виду не отличимы от действительных персональных данных. Например, реальная фамилия Петров может храниться в виде фамилии Медведевский или Obama или любой другой. Размер реальной фамилии и размер вымышленной фамилии между собой никак не связаны.
2) Набор целых чисел от 1 до 65535 в количестве, равному размеру реальных персональных данных. Например, для фамилии Петров - это 6 чисел, так как в фамилии Петров 6 букв, примерно таких: 111, 75, 71, 29, 100, 211.
Больше ничего в базе данных не должно сохраняться.
Для восстановления реальных данных из вымышленных необходимо в оперативной памяти компьютера хранить алфавит - перечень символов, используемых для отображения персональных данных. Максимум - это 65535 символов в кодировке Unicode. Порядок следования символов в алфавите имеет первостепенное значение. Набор чисел в приведенном выше примере для фамилии Петров - это связь между адресами букв реальной фамилии Петров в алфавите и адресами букв вымышленной фамилии Медведевский в алфавите. Алфавит отличается от шрифта тем, что символы в алфавите различаются только по коду и порядок следования символов произвольный. Начертания символов не имеет никакого значения для алфавита. В шрифте начертания символов имеет первостепенное значение и порядок следования символов единственный.
Адреса букв в алфавите и реальные буквы между собой никак не связаны.
Если хакеры украдут из базы данных вымышленную фамилию Медведевский или Obama и украдут набор чисел 111, 75, 71, 29, 100, 211, то восстановить реальную фамилию Петров не смогут, так как отсутствует алфавит. А украсть алфавит из оперативной памяти практически невозможно.
Если изменить в алфавите порядок следования символов, то это будет уже другой набор чисел для фамилии Петров. Можно время от времени изменять алфавит и заменять наборы чисел в базе данных для персональных данных. Вымышленные персональные данные можно не изменять.
Как видите, украсть персональные данные невозможно, так как их попросту нет. Кража вымышленных персональных данных в этом случае бессмысленна. Под персональными данными мы понимаем в том числе пароли, логины, аккаунты и т.п.

 Профиль  
                  
 
 Re: Дарю алгоритм отображения информации
Сообщение27.02.2014, 20:12 
Заслуженный участник


09/09/10
3729
Вы предлагаете шифр простой замены — после того как мы возьмем "подставную фамилию" (набор чисел? в компьютерах, знаете ли, символы кодируются числами), вычтем (или прибавим, уж не помню тонкости вашего первого сообщения) вектор чисел, мы получим строку из чисел — но там 65 кодирует не латинскую A, а что-то еще. Однако эта 65 всегда будет кодировать одну и ту же букву. Вы считаете, это невозможно взломать? Это арабы в восьмом веке умели делать:
Халиль ибн Ахмад аль-Фарахиди в "Китаб аль-Маумма" писал(а):
Один из способов прочесть зашифрованное сообщение, если мы знаем язык, на котором оно написано, — это взять другой незашифрованный текст на том же языке, размером на страницу или около того, и затем подсчитать появление в нем каждой из букв. Назовем наиболее часто встречающуюся букву «первой», букву, которая по частоте появления стоит на втором месте, назовем «вторая», букву, которая по частоте появления стоит на третьем месте, назовем «третья» и так далее, пока не будут сочтены все различные буквы в незашифрованном тексте.
Затем посмотрим на зашифрованный текст, который мы хотим прочитать, и таким же способом проведем сортировку его символов. Найдем наиболее часто встречающийся символ и заменим его «первой» буквой незашифрованного текста, второй по частоте появления символ заменим «второй» буквой, третий по частоте появления символ заменим «третьей» буквой и так далее, пока не будут заменены все символы зашифрованного сообщения, которое мы хотим дешифровать.


Более того, русские фамилии имеют тенденцию заканчиваться на "ов" и "ев", что уже облегчает задачу.

-- Чт фев 27, 2014 21:20:40 --

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

И опять же, все время держать "секретный алфавит" в оперативной памяти невозможно — это долговременный ключ, и он должен быть одинаковым у всех клиентов, обращающихся к БД — значит, его придется где-то на клиентах хранить, и как-то между ними синхронизировать.

 Профиль  
                  
 
 Re: Дарю алгоритм отображения информации
Сообщение16.04.2014, 16:57 


22/02/14
16
Да, абсолютное нежелание читать в Вас очень глубоко сидит. Описан алгоритм отображения осмысленной информации в другую осмысленную информацию, например, отображение слова Путин через слово Медведев. Затем из слова Медведев восстанавливается слово Путин. Точно также, алгоритм позволяет из романа 12 стульев восстановить роман Война и мир. Интересно, какой же частотный словарь примененный к роману 12 стульев позволит восстановить роман Война и Мир? Думайте, прежде чем говорить. Хотя, по-видимому, Вам бесполезно что-либо объяснять. А сами с карандашем в руках проверить Вы не можете, потому что самостоятельно никогда в жизни ничего не делали.

 Профиль  
                  
 
 Re: Дарю алгоритм отображения информации
Сообщение16.04.2014, 19:15 
Заслуженный участник


09/09/10
3729
VikDemak в сообщении #831074 писал(а):
Если хакеры украдут из базы данных вымышленную фамилию Медведевский или Obama и украдут набор чисел 111, 75, 71, 29, 100, 211, то восстановить реальную фамилию Петров не смогут, так как отсутствует алфавит. А украсть алфавит из оперативной памяти практически невозможно.

Еще раз: если я украду копию "12 стульев" и длиннющий набор чисел, то мне не нужен никакой алфавит, чтобы увидеть, что вместе скомбинированные они дают "Войну и мир".

Ваш алгоритм вообще называется просто "вычитание векторов".

 Профиль  
                  
 
 Re: Дарю алгоритм отображения информации
Сообщение16.04.2014, 19:27 


28/11/11
2884
Joker_vD в сообщении #850558 писал(а):
Ваш алгоритм вообще называется просто "вычитание векторов".

VikDemak, осилил Ваше стартовое сообщение. То, что Вы предлагаете, это действительно есть просто замена, просто вычитание векторов.

-- 16.04.2014, 19:33 --

VikDemak в сообщении #829383 писал(а):
Этот алгоритм опубликован в 2009 г.

Где? Дайте народу знать о таком "научном" журнале.

 Профиль  
                  
 
 Re: Дарю алгоритм отображения информации
Сообщение23.10.2015, 18:07 


22/02/14
16
longstreet в сообщении #850562 писал(а):
Joker_vD в сообщении #850558 писал(а):
Ваш алгоритм вообще называется просто "вычитание векторов".

VikDemak, осилил Ваше стартовое сообщение. То, что Вы предлагаете, это действительно есть просто замена, просто вычитание векторов.

-- 16.04.2014, 19:33 --

VikDemak в сообщении #829383 писал(а):
Этот алгоритм опубликован в 2009 г.

Где? Дайте народу знать о таком "научном" журнале.

Очень трудно искать в темной комнате черную кошку, особенно, если кошки в комнате нет. Все мои ссылки на публикации старательно удалены модераторами с формулировкой - это самореклама. Вот так, новые научные истины - это самореклама.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group