Стеганографические таблицы и создание шарад

Содержание:

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

Здесь и далее будут приведены вспомогательные таблицы и некоторые другие данные позволяющие эффективно реализовать стеганографическое сокрытие информации.

Основные европейские языки

Алфавиты большинства европейских стран построены латинскими, греческими и кириллическими символами. Ниже приведена таблица символов для латинского, кириллического, международного фонетического алфавита (МФА) и греческого.

Латиница
Кириллица
МФАГреческий
ЛисуППФ
A,aА,аɑΑ,αA,a
B,b,ƄВ,в,Ь,ьʙ,ɓΒ,ϸ,βB,b
C,Ⅽ,ⅽ,cС,сʗ,ɕϹ,ϲC,c
D,Ⅾ,Ɗ,dԀ,ԁɖ,ɗꓓ,ꓒD,d
E,eЕ,еɐΕ,ΈE,e
F,fϜF,f
G,gԌɢ,ɡG,g
H,hН,Ң,һʜ,ɦΗH,h
I,Ⅰ,i,ⅰІ,іɪ,ɨΙ,Ί,ίI,i
J,jɟ,ʝͿ,ϳJ,j
K,k,ĸК,Ԟ,Ҡ,Ҝ,к,ԟΚ,κK,k
L,Ⅼ,lʟ,ɩ,ɭL,l
M,Ⅿ,m,ⅿМ,мʍ,ɱ Μ,ϺM,m
N,nɴ,ɲ,ɳΝ,ηN,n
O,oО,оʘΟ,οO,o
P,pР,рΡ,Ϸ,ρP,p
Q,qԚ,ԛʠϘ,ϥ,ϥQ,q
R,Ɍ,Ʀ,rГ,Ґ,г,ґʀΓR,r
S,sЅ,ѕS,s
T,tТ,тʈΤ,Ͳ,ͳ,ϯT,t
U,uЏ,џU,u
V,Ⅴ,vѴ,ѵʋγ,νV,v
W,wԜ,ԝW,w
X,x,ⅹХ,хΧ,χX,x
Y,yУ,Ү,ү,уΥ,γY,y
Z,zʐ,ʑΖZ,z
ƃБ,б ɓ
Д,д
ëЁ,ё
Ж,ж,Җ,җ
З,з,Ӡ,ӡɜ,ʒ,ʓ
И,иͶ,ͷ
Є,єϵ
ïЇ,їΪ,ϊ
Й,й,ӣ,ҋ
ɅЛ,л,Ԓ,ԓʌΛ,
П,п,Ԥ,ԥΠ,π
Ў,ў,Ӯ,ӯ
ȹФ,фɸΦ,ϕ
Ц,ц
Ч,чʮ,ɥ,
ƜШ,шɯ
Щ,щɰ
Ъ,ъ
Ы,ы
Э,э϶
Ю,ю
Я,я
  • МФА — международный фонетический алфавит
  • Лису — алфавит Фрэйзера
  • ППФ — полуширинные и полноширинные формы

Разные шрифты, могут отличатся формой букв. Впрочем, сейчас имеется тенденция к упрощению формы букв во многих языках мира. Выбирайте простые шрифты без закорючек: Serif, Times New Roman, Arial. Идеальным выбором будет моноширинные шрифты: Ubuntu mono, Monospaced и другие.

Пример стеганографического сообщения

Ниже приведен стих, который выбран не случайно. Обратите внимание на третий рядок. Все строки начинаются одинаково, а третья строка немного длиннее. Кроме того, во второй строчке неслучайная опечатка, присмотритесь внимательней. И буква «о» в слове «out» шире. Если бы строки не начинались одинаково, этого трудно было бы заметить. К тому же, многие считают поэзию скучным и унылым увлечением одиноких людей. Большая часть молодых людей прокрутила бы эту страницу до самого низа и ничего бы не заметила. Похоже, что я среди них всего лишь исключение.

І have been one acquainted with the night.
l have walked оut in rain — and back in rain.
I haѵе outwalked the furthest citу light.
I have lоoked down the saddest city lane.
I have passed by the watchman on his beat
And dropped my eyes, џnwilling to explain.

Роберт Фрост, известный американский поэт
стеганографическое сообщение
Любой шестнадцатиричный редактор покажет секрет

Просто скопируйте и сохраните этот стих в текстовый файл (в кодировку utf-8). Откройте шестнадцатиричный редактор и посмотрите на коды символов. Да, это оно! Наше предположение оказалось верным. Секретное сообщение здесь закодировано методом подсвечивания. Содержимое секретного сообщения: «I love you». А теперь, позвольте мне вставить свой собственный стих:

Есть слова, что нет смысла скрывать
Их достаточно просто сказать,
И один на один с собой
Не коверкать рядков тяжких строй

Ведь слова не приходят одни
Они разных эмоций полны
И в печатных словах не видны
Жизнью скрыты, так часто они

Невозможно их всех угадать
Продолжая все дальше читать
Их достаточно просто сказать
Их достаточно просто забыть

Разминутся и дальше плыть
Волны пеной морской облекут
Тяжесть сказанных слов уберут
Те слова, никогда не найдут…

В моем стихе стеганографического сообщения и скрытых интерпретаций нет. Конечно, мне будет приятно что вы нашли время его прочитать. Но это просто красивые слова человека, который пропустил одну остановку в общественном транспорте желая доставить эстетическое удовольствие своим читателям.

Cube Mixer screenshot
Cube Mixer

Источником моего вдохновения стало приложение «Cube Mixer». Оно помогло мне найти рифму для перевода этого стиха на английский язык. Если вы хотите выразить себя, если вам нужно найти слова для ваших близких, если вам нечего делать, тогда воспользуйтесь шансом подаренным вам судьбой. Установить приложение Cube Mixer с Google Play.

Увеличение эффективности хранения информации

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

Если одну букву можно написать похожими символами, но имеющими разное числовое значение, тогда количество этих символов будет определять скрытую полезную нагрузку. Существует 14 разных способов написания буквы «K». Если вы применяете 14 разных способов написания, тогда общее количество состояний для двух символов «K» будет достаточно для представления 14^2=196 символов. Знаете что это означает? Это означает, что двумя позициями содержащими все возможные символы похожие на «K» можно закодировать алфавиты нескольких языков!

Если не различать большие и маленькие буквы, тогда в число возможных языков мы можем включить:

  • Австрийский, Английский, Датский, Венгерский, Испанский, Латвийский, Литовский, Молдавский, Немецкий, Румынский, Польский, Португальский, Финский, Французский, Эстонский — около 50 латинских символов;
  • Абхазский, Азербайджанский, Белорусский, Болгарский, Боснийский, Казахский, Киргизский, Македонский, Монгольский, Русский, Сербский, Туркменский, Узбекский, Украинский — около 50 кириллических символов;
  • Арабский, Хауса, Фарси, Уйгурский, Урду — около 50 символов;
  • Идиш, Иврит — 22 буквы.

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

Символы диакритики

Вы можете сказать: «Не все латинские буквы буквы имеют аналоги в кириллице и наоборот». Да, конечно. Существуют ещё специальные символы диакритики. Таким образом русскую букву «ё» можно представить как латинскую букву «e» с двойным диэрезисом. Белорусскую букву «ў», представит как латинскую «y» с макроном «ӯ». Вы можете создать свою схему для увеличения полезной нагрузки. Существует огромное количество возможных вариантов представления букв и их невозможно перечислить. Все ограничивается только вашей фантазией.

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

Если к каждому возможному символу похожему на букву «К» добавить символы диакритики, тогда общее количество возможных скрытых состояний двух букв существенно увеличится: (14+50)^2=4096. Если каждое из этих состояний интерпретировать отдельно, тогда можно представить индексы 4096 слов в словаре. Более того таким образом можно представить каждую инструкцию процессоров Intel и AMD. В одном стихотворении Пушкина «Евгений Онегин», можно передать скрытую в виде процессорных инструкций программу «hello world».

Один из первых успешных серийных процессоров от Intel (8086) имел около 100 документированных инструкций и некоторое количество недокументированных инструкций. Машинная команда (опкод, операционный код) может иметь следующие размеры: 1 байт, 2 байта, 3 байта. Среди всех возможных машинных инструкций 8086-го в обычной программе можно было встретить от 20 до 35 инструкций разного вида. Представьте, что каждую из инструкций процессора мы можем передать в виде двух печатных символов с диакритикой. Это будет более удобно, чем кодировка Base64 которой мы представили бинарную информацию (смотреть статью Представление информации: язык программирования Python и кодировки).

Полуширинные и полноширинные формы символов

Все китайские иероглифы полноширинные. Если применять пробелы, тогда текст сдвигается. Символ пробела занимает не полную ширину места для знака. Иногда требуется вставить слово на другом языке, тогда пробелы применяются и текст сдвигается. Чтобы сохранить эстетическую красоту китайцы используют полноширинный вариант латинских символов (ППФ).

Каждая буква и цифра в ППФ центрирована. Это немного растягивает предложение. Так предложение «I love you!» представленное символами ППФ будет иметь вид: «I love you!». Я не ставил пробелы и не менял шрифт.

Как применить указанную особенность?

Whatabig cat? Iwanna pet it!

В данном тексте содержится стеганографическое сообщение. Посмотрите внимательно на все буквы «a». Два символа ППФ написаны без пробелов. В предложении «Какой большой кот? Я хочу его погладить!» скрыта аббревиатура AI (англ. artificial intelligence — искусственный интеллект). Самое интересное в этом то, что текстовый процессор Libre Office показывает, что в этом предложении 8 слов. Мы не ставили пробелы рядом с артиклем «a». С точки зрения посимвольной обработки первые три слова написаны слитно. Проверить это очень просто, кликните два раза по слову и оно выделится все.

Цифры и знаки

Если вы думаете что цифры нельзя заменить на похожие символы, тогда вы очень ошибаетесь. Что касается цифр, то их можно представить следующим образом:

Представление
00 (ППФ);
߀ (НКО, языки манде);
Օ (армянское «O», в некоторых шрифтах рисуется как 0);
11,イ,l (ППФ);
⌉ (разнообразные технические символы);
22 (ППФ);
33(ППФ);
Ʒ (МФА, буква «ezh»);
З,з (кириллические буквы «Ze»);
ℨ (готические буквоподобные символы);
44(ППФ);
կ, Կ (армянские буквы «Ken»);
ⴗ (грузинская буква «Qar»);
55(ППФ);
Ƽ, ƽ, (расширенная латиница);
ⴝ (грузинская буква «Char»);
66(ППФ);
77(ППФ);
ל (иврит буква «Lamed»);
88(ППФ);
Ց (армянская буква «Tso»);
99(ППФ);
ց (армянская буква «Sо»);

Недостатком данного метода является то, что не все шрифты содержат графическое представления для таких знаков. Что касается знаков препинания, они также имеют похожие символы. В качестве примера, возьмите символы ППФ.

Искусственный интеллект и подбор шрифтов для стеганографии

Шрифтов существует огромное количество. Более того, существует огромное количество стилей написания букв. Невозможно просмотреть тысячи символов Unicode. Как выбрать самый удобный для стеганографических целей шрифт? Для этого можно применить возможности нейронных сетей.

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

Примерный алгоритм действий после тренировки и тестирования нейронной сети:

  1. Создать скрипт который по очереди выводил все символы шрифта;
  2. Получить скриншоты с экрана;
  3. Подать на входы нейронной сети нормализованное изображения;
  4. Получить результат (вектора меры подобия образцов для классификации).

Шарады, буллинг и известные люди

Вам нравится разгадывать шарады? Мне тоже. Вы знаете что в Индии, в штате Пенджаб, есть свой пенджабский язык. Этот язык раньше использовал сложную систему письменности которая называлась «Шарада». Первый сикхский гуру Нанак упростил пенджабский и создал современную систему письменности Гурмукхи. Эта система письменности заменила Шараду. Слово «шарада» до сих пор используется как синоним для слова загадка.

Индусы создали шахматы. Индусы много чего разработали и придумали. Они занимают ключевые должности во многих известных мировых корпорациях и странах. Например, глава корпорации Google Пичаи Сундарараджан, министр обороны Канады Харджит Сингх Саджан. Последний получил орден за военные заслуги. Почему все они такие умные? Возможно, в детстве все известные индусы разгадывали шарады и играли в шахматы.

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

государственные языки Индии
Разнообразие языков полуострова Индостан
1. Хинди — 551.4
2. Английский — 125.3
3. Бенгальский — 91.1
4. Телугу — 84.9
5. Маратхи — 84.1
6. Тамильский — 66.7
7. Урду — 59.1
8. Каннада (дравидийский) — 50.7
9. Гуджарати — 50.2
10. Ория, или Одия — 36.6
11. Малаялам — 33.7

Согласно другой гипотезе, буллинг в детстве вынуждает людей становится хитрее и умные других. Если люди не останавливаются и продолжают жить не обращая на это внимание, тогда они становится лучше других и получают преимущество. Почитайте биографию Илона Маска, почитайте биографию Сергея Брина. Не знаю нравятся ли им шарады, но в логотипе компании Tesla спрятан кошачий нос. Люди получившие преимущество наслаждаются своей уникальностью и создают такие же уникальные вещи достойные похвалы.

Выводы

Языки общения, также как и языки программирования, являются инструментами. Умные и находчивые люди могут использовать их для получения преимущества. Стеганография это лишь одно из них. Уникальность и разнообразие людей дает нам новые символы. Иногда, люди становятся символами эпохи. У нашей эпохи много символов и создаем их мы прямо или косвенно.

Не останавливайтесь, находите время для личного развития и приносите людям пользу, вдохновляя других поступать также. И мир станет лучше, мир станет совершеннее! Оставайтесь с нами, читайте наши статьи, узнавайте новое.

Оставьте комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *