id: Гость   вход   регистрация
текущее время 16:07 19/04/2024
Автор темы: demakviktor, тема открыта 26/02/2014 11:50 Печать
Категории: криптография, алгоритмы
https://www.pgpru.com/Форум/Криптография/ОценитеНовыйАлгоритмОтображенияИнформации
создать
просмотр
ссылки

Оцените новый алгоритм отображения информации


Алгоритм отображения информации.
Алфавит – перечень символов, встречающихся в текстах. Каждый символ в алфавите встречается только один раз. Алфавит содержит не только прописные и строчные буквы, но символы знаков препинания, пробел, символы перевода каретки, символы новой строки и т.п. Каждый символ в алфавите имеет адрес, который изменяется от 1 – первый слева символ в алфавите, до N – последний слева символ в алфавите.
Рассмотрим пример.
Пусть имеем два слова: Путин, Медведев. В этих словах имеются следующие символы: П, у, т, и, н, М, е, д, в. Этот набор символов называется собственным алфавитом слов Путин и Медведев.
Задача: Найти алгоритм отображения слова Путин через слово Медведев и алгоритм восстановления слова Путин из слова Медведев.
Решение: Возьмем алфавит, состоящий из всех символов русского и английского языка, знаков препинания, пробела. Всего 190 символов, т.е. N = 190. Порядок символов в алфавите – случайный.
Запишем собственный алфавит в следующем виде:
17=П, 100=у, 34=т, 35=и, 144=н, 190=М, 88=е, 66=д, 1=в
П=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 г.


 
Комментарии
— unknown (26/02/2014 15:26, исправлен 26/02/2014 15:45)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

С таким же успехом можно складывать по модулю через вашу случайную подстановку-перестановку:


(17 + 190) mod 190 = 17
(100 + 88 + 17) mod 190 = 15
(34 + 66 + 15) mod 190 = 115
(35 + 1 + 115) mod 190 = 151
(144 + 88 + 151) mod 190 = 3


И вычитать для расшифрования:


(17 – 190) mod 190 = 17
(15 – 17 – 88) mod 190 = 100
(115 – 15 – 66) mod 190 = 34
(151 – 115 – 1) mod 190 = 35
(3 – 151 – 88) mod 190 = 144


Линейная рекурсивная операция через коммуникативную группу (сложение). Все виды криптоанализа эту подстановку легко восстанавливают.

— demakviktor (27/02/2014 16:33)   профиль/связь   <#>
комментариев: 2   документов: 4   редакций: 0
Это нужно вот для чего:

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

В базе данных персональные данные должны сохраняться в следующем виде:
1) Вымышленные персональные данные, которые по внешнему виду не отличимы от действительных персональных данных. Например, реальная фамилия Петров может храниться в виде фамилии Медведевский или Obama или любой другой. Размер реальной фамилии и размер вымышленной фамилии между собой никак не связаны.
2) Набор целых чисел от 1 до 65535 в количестве, равному размеру реальных персональных данных. Например, для фамилии Петров – это 6 чисел, так как в фамилии Петров 6 букв, примерно таких: 111, 75, 71, 29, 100, 211.
Больше ничего в базе данных не должно сохраняться.
Для восстановления реальных данных из вымышленных необходимо в оперативной памяти компьютера хранить алфавит – перечень символов, используемых для отображения персональных данных. Максимум – это 65535 символов в кодировке Unicode. Порядок следования символов в алфавите имеет первостепенное значение. Набор чисел в приведенном выше примере для фамилии Петров – это связь между адресами букв реальной фамилии Петров в алфавите и адресами букв вымышленной фамилии Медведевский в алфавите. Алфавит отличается от шрифта тем, что символы в алфавите различаются только по коду и порядок следования символов произвольный. Начертания символов не имеет никакого значения для алфавита. В шрифте начертания символов имеет первостепенное значение и порядок следования символов единственный.
Адреса букв в алфавите и реальные буквы между собой никак не связаны.
Если хакеры украдут из базы данных вымышленную фамилию Медведевский или Obama и украдут набор чисел 111, 75, 71, 29, 100, 211, то восстановить реальную фамилию Петров не смогут, так как отсутствует алфавит. А украсть алфавит из оперативной памяти практически невозможно.
Если изменить в алфавите порядок следования символов, то это будет уже другой набор чисел для фамилии Петров. Можно время от времени изменять алфавит и заменять наборы чисел в базе данных для персональных данных. Вымышленные персональные данные можно не изменять.
Как видите, украсть персональные данные невозможно, так как их попросту нет. Кража вымышленных персональных данных в этом случае бессмысленна. Под персональными данными мы понимаем в том числе пароли, логины, аккаунты и т.п.
Весь фокус состоит в том, что можно восстановить адрес, но не сам символ. Это самое главное. Никакого взлома, тем более легкого нет.
— unknown (27/02/2014 21:05)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Может я чего-то не понимаю, но наивняк полнейший. Кого вы одурачите тем, что в качестве шифртекста будет лежать подставная фамилия и другая половина шифртекста в виде набора чисел. Для восстановаления алфавита (по сути большой подстановки, S-блока) его не нужно перебирать грубой силой.

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

В любом случае, алгоритм не стоек к атакам с известным и подобранным открытым текстом, а использовать вместо 128-битного ключа длиннющую секретную подстановку (алфавит) стойкости никак не добавит. Скорее всего, это слабее, чем Энигма времён второй мировой и напоминает методики давно устаревшей криптографии.
— Гость (28/02/2014 01:06)   <#>
Конспиратор не знает, что такое mod и xor. Тем более – S-блок)
Но хочет закодировать и Путина, и Медведева, и Обаму даже) удачи)))
— Гость (28/02/2014 10:01)   <#>
выражать буквы через числа, имхо, далеко не новый метод. равно как и можно выразить картинками (веселыми)).
куда проще создавать шифротекст, используя номер слова, номер строки, номер страницы ранее определенной книги.
— unknown (28/02/2014 10:20, исправлен 28/02/2014 10:43)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Да, за несколько сотен лет до изобретения компьютеров. Если не больше.



У вас в книгах рэндомный текст для одноразовых блокнотов, а сама книга известна только отправителю и получателю?


Или это обычный нерэндомный текст, с помощью которого всё легко ломается. Тем более в наше время, когда не только слова, но фрагменты книг можно искать в инете автоматически.


Book cipher, Running key cipher:

If the running key is truly random, never reused, and kept secret, the result is a one-time pad, a method that provides perfect secrecy (reveals no information about the plaintext). However, if (as usual) the running key is a block of text in a natural language, security actually becomes fairly poor, since that text will have non-random characteristics which can be used to aid cryptanalysis. As a result, the entropy per character of both plaintext and running key is low, and the combining operation is easily inverted.
To attack the cipher, a cryptanalyst runs guessed probable plaintexts along the ciphertext, subtracting them out from each possible position. When the result is a chunk of something intelligible, there is a high probability that the guessed plain text is correct for that position (as either actual plaintext, or part of the running key). The 'chunk of something intelligible' can then often be extended at either end, thus providing even more probable plaintext – which can in turn be extended, and so on. Eventually it is likely that the source of the running key will be identified, and the jig is up.
— Гость (28/02/2014 12:46)   <#>

Когда опубликован, разобрались.
Хотелось бы узнать, где опубликован и кем. Если это не является тайной или секретом.
— Гость (02/03/2014 06:11)   <#>

Если доступ к нему осуществляется под тем же юзером, то можно — достаточно запустить зловреда с правами этого юзера. В более тяжёлых случаях нужен local root. В ещё более тяжёлых — cold boot.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3