Дипломная работа (ВКР) — бакалавр, специалист на тему Разработка и реализация алгоритма шифрования ДНК-цепочек с применением k-значной логики
-
Оформление работы
-
Список литературы по ГОСТу
-
Соответствие методическим рекомендациям
-
И еще 16 требований ГОСТа,которые мы проверили
Введи почту и скачай архив со всеми файлами
Ссылку для скачивания пришлем
на указанный адрес электронной почты
Содержание:
Введение. 2
1
Основные понятия и актуальность использования ДНК-цепочек. 5
1.1
Теоретическое описание ДНК-цепочек. 5
1.2.
Сферы применения ДНК-цепочек. 7
1.3.
Актуальность применения ДНК-цепочек. 11
1.4
ДНК-номенклатура. 13
2
Основные определения р-адической логики и шифрования. 16
2.1
Понятие о p-адических числах. 16
2.2
Простые p-адические числа. 16
2.3
Основные понятия k-значной логики. 18
2.4
Способы шифрования и формирования ключей. 22
3
Алгоритм шифрования ДНК-цепочек. 25
3.1
Описание алгоритма шифрования. 25
3.2
Реализация алгоритма шифрования на языке программирования Python. 27
3.3
Структура программного обеспечения. 34
3.4
Тестирование программного обеспечения. 36
Заключение. 39
Список
использованных источников. 41
Приложение.
Исходный текст разработанного программного обеспечения. 43
Введение:
Часто наилучшие
технические результаты в своих отраслях инженеры и ученые получают, копируя те
решения, которые были выработаны самой природой в процессе миллионнолетней
эволюции живых организмов под действием факторов их естественного отбора. Наука
бионика изучает такие решения и переносит их в различные сферы технической
деятельности. Например, достаточно давно развиваются и принесли немалую пользу
кораблестроению — наука гидробионика, авиастроению — аэробионика и т.п. Вполне
логичными тогда должны быть и попытки применения наработанных природой решений
в сфере информационных технологий. Одно из основных предназначений науки
информатики заключается в разработке методов и средств для хранения
значительных объемов информации. До сегодняшнего дня этот процесс реализуется
на основе двоичной логики и магнитных носителей, лишь в последние лет десять
активно заменяемых на электрические (флэш-память и SSD). В первом и часто во втором случае,
информация размещается на двухмерном носителе и, соответственно, плотность ее
записи измеряется на единицу площади. В случае твердотельных накопителей типа 3D NAND можно говорить об объемном хранении и плотности записи на единицу объема
микросхемы. В то же самое время в природе за миллиарды лет эволюции сложился
совершенно иной принцип хранения информации – на одномерном носителе в виде
цепочки дезоксирибонуклеиновой кислоты (ДНК). Учитывая ее одномерный характер,
плотность записи тогда должна измеряться на единицу длины. Чтобы сравнить эффективность
двух указанных способов хранения, можно перейти к универсальной единице
измерения, выражающейся на единицу массы. В этом случае ДНК выигрывает у
существующих технических средств на много порядков, т.к. в одном ее грамме
можно разместить около 400 тысяч терабайт информации, т.е. 400 петабайт или
около 0,4 эксабайта; плотность же записи электронных носителей лишь
приближается к величинам порядка терабайта на грамм. Отсюда можно сделать
однозначный вывод, что исследование вопросов хранения информации с
использованием ДНК является чрезвычайно актуальным
и может проводиться для различных направлений, в т.ч. – для криптографических
целей, а также и для исследования биологических объектов с помощью
математических зависимостей.
Целью данной работы является исследование возможностей кодирования и (как его
крайнего случая, обладающего криптографической стойкостью) шифрования
ДНК-цепочек, в частности с применением многозначной логики (т.е. с основаниями,
отличными от 2).
Исходя из
поставленной цели, можно сформулировать следующие задачи данной работы:
— проанализировать
структуру и особенности ДНК, в частности с точки зрения задачи хранения
информации с ее помощью;
— выделить пути математических
преобразований сведений из ДНК-цепочек, ведущие к новым возможностям по
изучению ДНК с точки зрения хранения информации на ней, а также, возможно, с
точки зрения свойств живой природы;
— выбрать средства
разработки и провести программную реализацию предложенных алгоритмов,
проанализировать их и сделать вывод об их практической применимости.
Объектом исследования являются процессы
преобразования информации из ДНК-цепочек, ведущие к новым возможностям их
использования, например в целях шифрования или исследования свойств живой
природы.
Предметом исследования являются методы
и средства преобразований информации из ДНК-цепочек.
Практическое значение
работы состоит в создании программного продукта, с помощью которого можно
осуществлять преобразование информации, хранящейся в цепочках ДНК, в другие
формы, в частности на основе k-значной логики.
Методы применяемые в работе: методы теории чисел, теории кодирования и
технологии программирования.
В перспективе возможны статистические
исследования числового представления информации, которая первоначально была
зашифрована в ДНК, а с помощью разработанного программного обеспечения
представляется в других формах (на основе k-значной логики).
При этом может быть получено установление биективных связей между свойствами
живых объектов, которым соответствует участвующая в преобразованиях ДНК, и
характеристиками этой же информации, полученными на основе ее k-значного представления.
Заключение:
Таким образом, в
данной работе проведена разработка и реализация алгоритма шифрования
ДНК-цепочек с применением k-значной
логики. Рассмотрены особенности предметной области, а именно строение и
информационная вместимость молекулы ДНК. Установлено, что в ней информация
фактически записывается в четверичной системе счисления, однако по понятным
причинам соответствие азотистых оснований конкретным ее цифрам может быть
произвольным. Отсюда предложено простое шифрование данных проводить на
основании биективного отображения нуклеотидов и цифр системы счисления. Также
описаны возможности по шифрованию отдельных символов исходного алфавита
секретного сообщения четверками нуклеотидов, а также реализации шифра Вернама
на основе цепочки ДНК получателя с организацией биометрической криптографической
системы.
При преобразовании
информации использована визуализация ДНК-цепочек на основе р-адических чисел (неотрицательных целых, ввиду практической
направленности такого представления).
Для проведения
программной реализации выбран язык программирования Python и рассмотрены его особенности, обуславливающие такой выбор. Для
построения графического интерфейса пользователя выбрана популярная библиотека Tkinter. Программа реализует методы работы с
файлами, т.е. генетическую информацию можно загрузить с диска, а результаты
сохранить в файл для дальнейшего использования, например в математических
программах, реализующих ее статистическую обработку. Разработан конкретный
алгоритм преобразования ДНК-кода, который и реализован в рабочем программном
продукте.
Результаты
тестирования продукта показали его адекватную работу и действительное
выполнение соответствующих преобразований, выполняющих кодирование и простое
шифрование ДНК-информации с использованием р-адических
чисел и k-значных систем счисления.
Работа в дальнейшем
может продолжаться в части статистических исследований результатов работы
программы на реальных (а не модельных) наборах генетической информации, а также
в части добавления в программу новой функциональности.
Фрагмент текста работы:
Нуклеотиды в этих цепях – это базовые элементы, литеры, с помощью
которых потом будут кодироваться и выстраиваться группы поменьше – кодоны и
группы побольше, называемые генами. Таким образом, ДНК с химической точки
зрения можно рассматривать как полимер, мономером которого выступают
нуклеотиды. В составе нуклеотида выделяется самая главная часть, несущая
информацию, — так называемое азотистое основание. Существует 4 основных азотистых
основания, входящих в состав ДНК:
— аденин А;
— гуанин Г;
— тимин Т;
— цитозин Ц.
В литературе, не являющейся профессиональной в области химии,
довольно часто понятия «азотистое основание» и «нуклеотид» используют как
взаимозаменяемые, что и будет для краткости выполняться в данной работе.
Теоретически в состав ДНК могут входить и другие нуклеотиды
(например, с азотистым основанием «урацил» У, которое обычно входит в состав
другой молекулы – РНК или рибонуклеиновой кислоты), однако в генетическом ДНК-коде
человека в нормальном состоянии должны присутствовать лишь упомянутые четыре
элемента.
Каждый нуклеотид встраивается в одну нитку цепочки ДНК, которая
является двойной спиралью и важной особенностью является комплементарность, то
есть необходимость соответствия элементов одной нитки – элементам другой. Так,
если на одной нити в некоторой позиции находится азотистое основание аденин А,
то в этом же месте на другой может находиться только и только тимин Т.
Очевидно, что если на одной нитке располагается тимин Т, то с другой стороны
должен быть только и только аденин А. Вторая пара азотистых оснований обладает
таким же свойством, то есть гуанин Г может связываться только с цитозином Ц.
Получается, что если двигаться вдоль одной нитки ДНК, то встречающиеся
нуклеотиды будут полностью определять нуклеотиды, которые в соответствующих
местах будут расположены на второй нити.
Таким образом, вторая нить
нужна лишь для обеспечения химической стабильности и долговечности самой
молекулы, а какой-либо новой информации, по сравнению с одной нитью, она не
несет. Значит, поскольку в данной работе основным предметом для исследования
является информация, в дальнейшем будем говорить об одной последовательности
нуклеотидов, не упоминая особо, что существует еще вторая комплементарная нить (из-за
ее