Статья опубликована в рамках: LI Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 30 марта 2017 г.)
Наука: Математика
Скачать книгу(-и): Сборник статей конференции
отправлен участнику
ЧАСТОТНЫЙ АНАЛИЗ ТЕКСТА С ПОМОЩЬЮ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ WOLFRAM MATHEMATICA
Введение. Двадцать первый век – время повсеместного распространения Интернета, средств связи, бурного развития информационных технологий и, как следствие, увеличения объемов конфиденциальной информации, которая, как никогда прежде, нуждается в грамотной и комплексной защите.
Большое количество средств как финансовых, так и временных тратится на обеспечение секретности информации, что содействовало появлению такой науки, как криптография.
Криптография – наука о защите данных. В настоящее время разработано множество самых разнообразных методов шифрования: от шифра Цезаря до алгоритма симметричного шифрования DES. Рассмотрим один из наиболее простых шифров, а именно частотный анализ. Он подразумевает, что каждая буква алфавита определенного языка встречается с определенной частотой. Например, буква «О» русского алфавита встречается в тексте с вероятностью 0,090. Это означает, что на каждые 1000 символов, в среднем, приходится около 90 символов, обозначающих букву «О».
Рисунок 1. Частоты букв русского алфавита
Выполнить частотный анализ текста поможет программа Wolfram Mathematica – система компьютерной алгебры, широко используемая в научных, инженерных, математических и компьютерных областях.
Цель работы. В данной работе описывается алгоритм последовательных пошаговых действий в программном обеспечении Wolfram Mathematica при выполнении частотного анализа зашифрованного текста.
Последовательность действий.
1. Задаем переменной «text» значение исходного шифротекста.
Рисунок 2. Присвоение переменной значения шифротекста
2. С помощью команды StringLenght[text] задаем переменной «string» значение, равное количеству символов в исходном тексте. Общее количество символов = 1418.
Рисунок 3. Определение количества символов в шифротексте
3. С помощью команды Tally[Characters[text]] определяем, сколько раз встретился в тексте тот или иной символ. Задаем это значение переменной «characters».
Рисунок 4. Подсчет встречаемости символов шифротекста
4. С помощью команды Sort[characters, ToCharacterCode[#1[[1]]][[1]] < ToCharacterCode[#2[[1]]][[1]] &] отсортируем полученные данные в алфавитном порядке. Задаем это значение переменной «charactersSorted».
Рисунок 5. Сортировка в алфавитном порядке
5. С помощью команд Transpose[charactersSorted] и MatrixForm[t1] представим полученные данные в виде, удобном для чтения пользователя.
Рисунок 6. Представление данных в удобном для пользователя виде
6. С помощью команды Panel@Rotate[ BarChart[charactersSorted[[;; , 2]], ChartLabels -> Placed[Style[#, 12, Bold] & /@ (charactersSorted[[;; , 1]]), Axis, Rotate[#, 90 Degree] &], ColorFunction -> Function[{height}, ColorData["Rainbow"][height]], ImageSize -> 750, GridLinesStyle -> Dashed, PlotRangePadding -> 0, BarSpacing -> 0.5], 0] построим график распределения символов.
Рисунок 7. Построение графика встречаемости символов
7. С помощью команды N[t1[[2]]/string] определим частоты встречаемости символов в исходном тексте. Задаем значение этой переменной «t3». Сумма всех частот должна быть равна единице.
Рисунок 8. Частоты встречаемости символов в исходном шифротексте
Выводы. Таким образом, с помощью несложных команд и операций мы научились выполнять частотный анализ произвольного текста в программном обеспечении Wolfram Mathematica.
Список литературы:
- Научное сообщество студентов XXI столетия. Технические науки: сб. ст. XXXVI студенческой международной научно-практической конф. – Новосибирск, 2015. – 235.
- Сингх С.Л. Книга шифров. Тайная история шифров и их расшифровки. –СПб.: Астрель, 2007. – 404 с.
- St. Wolfram. An Elementary Introduction to the Wolfram Language. Wolfram Media, Inc, 2015. – 324с.
отправлен участнику
Оставить комментарий