РЕАЛИЗАЦИЯ ПРОГРАММЫ ШИФРОВАНИЯ/ДЕШИФРОВАНИЯ ФАЙЛОВ ФОРМАТА WAV С ПОМОЩЬЮ АЛГОРИТМА ШИФРОВАНИЯ DES - Студенческий научный форум

IX Международная студенческая научная конференция Студенческий научный форум - 2017

РЕАЛИЗАЦИЯ ПРОГРАММЫ ШИФРОВАНИЯ/ДЕШИФРОВАНИЯ ФАЙЛОВ ФОРМАТА WAV С ПОМОЩЬЮ АЛГОРИТМА ШИФРОВАНИЯ DES

Басюк А.Г. 1
1Южный Федеральный Университет
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Основные поставленные задачи в данной работе стали реализация и демонстрация шифрования/дешифрования речевой информации стандартом DES.Для этого необходимо сначала принять параметры алгоритма DES такие, как ключ, режим, входной и выходной файл, затем полученный файл необходимо зашифровать и проверить работоспособность дешифрования.

Для разработки данной программы было решено использовать такой язык программирования как Python3. Реализация приложения выполнялась в интегрированной среде разработки для языка программирования Python3.

Теоретическое введение:

Формат WAVE

WAVE или WAV является короткой формой Wave Audio File Format (реже именуемой как Аудио для Windows). Этот формат является стандартом для хранения аудио потока на ПК. Он является сферой приложения формата RIFF для хранения аудио в «цепочках», это очень напоминает форматы 8SVX и AIFF, используемые компьютерами Amiga и Macintosh соответственно. Это также основной формат на системах Windows для хранения обычного несжатого звука. Как правило, для этого применяется кодирование методом линейной импульсно-кодовой модуляции.

Описание

Как WAV, так и AIFF совместимы с операционными системами Windows, Macintosh или Linux. Формат также учитывает некоторые отличия процессоров Intel, такие как порядок байтов от младшего к старшему. RIFF формат выполняет роль обертки для различных кодеков аудио сжатия.

Несмотря на то, что WAV файл может содержать сжатое аудио, наиболее обычным его применением является хранение как раз несжатого аудио в формате линейной импульсно-кодовой модуляции (LPCM). Стандартным форматом Audio-CD, например, является аудио в формате LPCM, с 2 каналами, частотой дискретизации 44 100 Гц и 16 бит на сэмпл. Так как формат LPCM хранит несжатое аудио, которое абсолютно идентично оригиналу, это позволяет использовать его профессиональным пользователям и аудио экспертам для получения максимального качества звучания. WAV аудио файл также может быть изменен практически в любом аудио редакторе. WAV формат работает со сжатым звуком в системах семейства Windows через Audio Compression Manager (ACM). Любой ACM кодек может быть использован для сжатия WAV файла. Пользовательский интерфейс для ACM может быть доступен через множество программ, включая и стандартную программу для записи звука в некоторых версиях Windows.

Начиная с Windows 2000, появился заголовокWAVE_FORMAT_EXTENSIBLE, который позволял хранить многоканальные аудио данные, учитывал расположение динамиков, исключал неоднозначности в плане типов сэмпла и размеров контейнера в стандартном WAV формате. Также он поддерживал произвольные расширения формата чанка.

Также существует много несоответствий в формате WAV: например, 8-битные данные являются без знаковыми, в то время как 16-битные – знаковыми.

WAV файлы могут содержать встроенные IFF «списки», которые могут содержать несколько «подчанков».

Реализация программы:

Данная программа представляет собой приложение консольного типа. Программа разработана в среде программирования PyCharmProfessional 2016.3.1. В качестве языка программирования используется высокоуровневый язык программирования общего назначения— python3.

Основным файлом программы является файл "cipher.py".

В данной программе используются следующие библиотеки и встроенные модули:

  • from Crypto.Cipher import DES

  • import sys

Модуль Crypto предназначен для работы с шифрованием/дешифрованием.

Библиотека sys - это бибилиотека обеспечивает высокоуровневое воздействие с операционной системой

В данной программе реализованна поддержка шифрования/дешифрования, передача через консоль таких аргументов как:

  • enc/dec – шифрование/дешифрование файла

  • filename1 – имя файла из котого будет производится шифрование/дешифрование

  • filename2 – имя файла в котором будет записан результат работы программы.

Так же реализованна проверка на кол-во блоков (8 бит) в файле и в случае если размер файла не кратен 8-ми бит, производится дописываение x00 (нулевых бит) в конец файла.

Проверка правильности введенных агрументов программы и их количество.

После шифрования файл воспроизводится, но вместо нормально звука только шумы и выглядит он – так:

Рис. 1. Результат работы программы шифрования.

Список литературных источников
  1. Лутц М. Изучаем Python, 4 издание: Символ-Плюс, 2011.

  2. Лутц М. Программирование на Python, 4 издание, I том: Символ-Плюс, 2011.

  3. sys – System-specific parameters and functions[Электронныйресурс].

URL: https://docs.python.org/3.4/library/sys.html

  1. Формат WAVE[Электронный ресурс].

URL: http://audiocoding.ru/formats/wav/

  1. Алгоритм DES[Электронный ресурс].

URL: https://www.opennet.ru/docs/RUS/inet_book/6/des_641.html

Приложение

Листингмодуляcipher.py

from Crypto.Cipher import DESimport sysif __name__ == '__main__': if len(sys.argv) is not 4: print('Error argv') print('Example encrypt ntpython cipher.py enc name.wave enc.wave') print('Example decrypt ntpython cipher.py dec enc.wave name.wave') exit(1) if sys.argv[1] == 'enc': with open(sys.argv[2], 'rb') as fr: cipher = DES.new(b'-8B key-', DES.MODE_ECB) data = fr.read() if len(data) % 8 == 0: msg = cipher.encrypt(data) else: msg = cipher.encrypt(data + b''.join([b'x00' for i in range(8 - len(data) % 8)])) with open(sys.argv[3], 'wb') as fw1: fw1.write(msg) print('Encryption successful') if sys.argv[1] == 'dec': with open(sys.argv[2], 'rb') as fw1: with open(sys.argv[3], 'wb') as fw2: data = fw1.read() cipher = DES.new(b'-8B key-', DES.MODE_ECB) fw2.write(cipher.decrypt(data)) print('Decryption was successful')

Просмотров работы: 411