Giter Club home page Giter Club logo

nstu-cryptography-basics's Introduction

Лабораторные работы по дисциплине "Основы криптографии" на факультете ПМИ, НГТУ

 

2. Основные методы побуквенного кодирования

Условия задачи

  1. Реализовать приложение для кодирования с помощью алгоритма Хафмфмана:
    • вероятности появления символов алфавита должны храниться в одном файле, а последовательность, подлежащая кодированию, – в другом;
    • закодированный текст должен сохраняться в файл;
    • приложение должно:
      а) выводить полученные кодовые слова для всех символов алфавита;
      б) вычислять среднюю длину кодового слова;
      в) вычислять избыточность;
      г) проверять неравенство Крафта.
  2. Реализовать приложение для декодирования с помощью алгоритма Хафмфмана:
    • вероятности появления символов алфавита должны храниться в одном файле, а закодированная последовательность – в другом;
    • раскодированная последовательность должна сохраняться в файл.
       

3. Помехоустойчивое кодирование

Условия задачи

  1. Реализовать приложение, кодирующее заданную последовательность символов X = [x1, x2, ..., xn] по алгоритму Хаффмана для случая равновероятного появления символов алфавита с проверкой на чётность. Проверка на чётность означает, что на выходе из кодера получается сообщение Y = [y1, y2, ..., ym-1, y`m, ym+1, ym+2, ..., yk-1, y`k, ..., y`s], при этом биты y`m, ..., y`s являются проверочными. Если длина кодового слова четна, то в окончательном виде оно будет иметь вид: Y = [y1, y2, y1, y1ꚛy2, y3, y4, y3ꚛy4, ...]; иначе Y = [y1, y2, y3, y1ꚛy2ꚛy3, y4, y5, y6, y4ꚛy5ꚛy6, ...].
  2. Реализовать приложение для декодирования сообщения:
    • подлежащая декодированию последовательность задаётся через входной файл;
    • результатом работы программы являются все части сообщения, которые удалось раскодировать (т.е. в них не было ошибок при передаче по каналу связи), а также сообщения об ошибках с номерами позиций, в которых они произошли (если ошибки были);
    • раскодированная последовательность сохраняется в один файл, а сообщения об обнаруженных ошибках – в другой либо выводятся на интерфейс.
       

4. Шифры перестановки и замены

Условия задачи

  1. Реализовать приложение для шифрования:
    • Шифруемый текст должен храниться в одном файле, а ключ шифрования (если есть) – в другом.
    • Шифрование производится согласно составному шифру Виженера. Конкретную реализацию алгоритма нужно выбрать самостоятельно. В алфавит шифруемых сообщений, который задан в варианте, нужно добавить символ пробела, который является разделителем слов.
    • Зашифрованный текст должен сохраняться в файл.
  2. Реализовать приложение для дешифрования:
    • Зашифрованный текст должен храниться в одном файле, ключ (если есть) – в другом.
    • Расшифрованный текст должен сохраняться в файл.
       

5. Генерирование равномерно распределённых псевдослучайных последовательностей

Условия задачи

Реализовать приложение Конгруэнтный генератор со случайными параметрами, удовлетворяющее следующим требованиям:

  • Во входном файле хранятся параметры генератора и прочие входные данные, необходимые для работы программы.
  • Программа генерирует псевдослучайную равномерно распределённую последовательность с помощью заданного в варианте генератора.
  • Для сгенерированной последовательности программа вычисляет период.
  • Программа проводит проверку качества сгенерированной последовательности по критерию χ2-Пирсона.
  • Сгенерированная последовательность, а также данные о найденном периоде и о результате проверки по критерию χ2-Пирсона сохраняются в выходной файл (или файлы).
     

6. Тестирование числа на простоту и построение больних простых числе

Условия задачи

Реализовать приложение Тест на основе малой теоремы Ферма, удовлетворяющее следующим требованиям:

  • Во входном файле хранятся входные данные, необходимые для работы программы.
  • Программа генерирует простое число с помощью заданного в варианте теста простоты.
  • Программа выдаёт сгенерированное число, время и количество итераций основного цикла, потребовавшихся для генерации.

nstu-cryptography-basics's People

Contributors

alecsmirnov avatar

Stargazers

 avatar

Watchers

 avatar

nstu-cryptography-basics's Issues

Пример программы

@alecsmirnov Есть пример работы программы, отчёт или ещё что-то? Есть трудности в формировании значений для полей, по сути не понимаю какая структура нужна. Зарание спасибо!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.