Определение языка сообщения
В живых языках буквы в текстах встречаются с разной частотой, другими словами, можно построить диаграммы распределения частот символов, характерные для каждого языка. Производится так называемая частотная селекция, текст сообщения анализируется как поток символов и высчитывается частота встречаемости (вес) каждого символа. Иногда таблицу для удобства нормализуют: веса делят на общее количество символов в обработанном сообщении. При анализе можно абстрагироваться от букв и их семантической нагрузки, взяв только номера символов и рассчитывая таблицу частот по номерам. Это позволит обойти наличие нескольких, временами несовместимых кодировок. Для принятия решения полученная таблица распреде-
ления сравнивается с эталонными таблицами и по близости к тому или иному распределению делается предположительный вывод о языке сообщения. Для анализа минимальная длина текста должна равняться длине трех алфавитов, что для русского языка составляет около сотни символов.
Таблица встречаемости букв в распространенных европейских языках | |||||||||
Английский Французский Немецкий Испанский Итальянский | |||||||||
Е | 12,86 | Е | 17,76 | Е | 19,18 | Е | 14,15 | I | 12,04 |
Т | 9,72 | S | 8,23 | N | 10,20 | А | 12,90 | Е | 11,63 |
А | 7,96 | А | 7,68 | I | 8,21 | О | 8,84 | А | 11,12 |
7,77 | N | 7,61 | S | 7,07 | S | 7,64 | О | 8,92 | |
N | 7,51 | Т | 7,30 | R | 7,01 | I | 7,01 | N | 7,68 |
R | 7,03 | I | 7,23 | Т | 5,68 | R | 6,95 | Т | 7,07 |
Взлом шифров
Вычисление статистических весов одиночных символов можно применить для взлома шифров однозначной замены. Здесь априори должен быть известен язык сообщения. Для подобного взлома сначала вычисляется частота встречаемости каждого символа зашифрованного сообщения и сравнивается с эталонной диаграммой. Если «веса» близки, можно сделать предположение о том, что это и есть та или иная буква. Далее исследуются слова, состоящие из двух или трех букв. Если в них есть уже открытые буквы, то, допуская, что это предлоги, можно определить недостающие, закрытые, буквы. Криптоаналитик должен хорошо владеть языком и быть подкованным в литературе языка оригинала.
Для взлома более сложных шифров анализ усложняется. Рассматривается предыстория символа, т.е. зависимость частоты появления от предыстории. Анализируются цепочки символов, по два символа (биграмма), по три (триграмма) и т.д. Для анализа биграмм вычисляется вероятность Pij появления символа j при
условии, что перед ним находится знак i. Это также носит название марковости первого порядка — по фамилии петербургского математика XIX в., предложившего данный метод анализа.
Такие системы лингвистического анализа применяются для взлома сложных шифров методом грубой силы, или, как еще это называют, методом полного перебора паролей. Программа перебирает все возможные пароли из заданного диапазона и проводит автоматический анализ полученных текстов на осмысленность. Осмысленные варианты расшифрованных текстов выводятся для анализа человеком.
Установление авторства
Компьютерная лингвистика находит применение в криминалистике и при проведении оперативно-розыскных мероприятий. Каждый человек имеет свой характерный набор слов, идиом и словесных штампов. Следовательно, в принципе, возможно построение марковской матрицы для отдельного человека, уникальной и выделяющей его лексикон, а также характерные орфографические и пунктуационные ошибки. Далее, сопоставляя полученную при анализе текста матрицу с эталонной, необходимо сделать более или менее достоверный вывод о том, мог испытуемый быть автором данного сообщения или нет. Другими словами, провести экспертизу, аналогичную идентификации отпечатков пальцев. Решение обратной задачи позволяет сделать предположение о том, кому из людей, матрицы которых хранятся в банке данных, принадлежит данное сообщение, и установить авторство или найти затерявшегося человека.