venkaDaria / bpid

BPiD - Turuta

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Задания по лекциям по «Безопасности программ и данных».

Язык реализации: Python (Python 3.x).

Содержание

Лекция 1

  1. Реализовать подсчёт статистик встречаемости букв. Составить шаблоны для художественной и технической литературы, молитв.

    source:

    • Slide1/Task1.py

    input:

    • text1.txt (художественная литература)
    • text2.txt (техническая литература)
    • text3.txt (молитва)

    output:

    • st_text1.txt (количество)
    • freq_text1.txt (десятичная дробь)
    • st_text2.txt
    • freq_text2.txt
    • st_text3.txt
    • freq_text3.txt
  2. Реализовать шифр Цезаря.

    source:

    • Slide1/Task2.py

    input:

    • text1.txt
    • text2.txt
    • text3.txt

    output:

    • enc_text1.txt
    • enc_text2.txt
    • enc_text3.txt
  3. Реализовать подсчёт статистик криптограмм, полученных методом Цезаря. Автоматизировать криптоанализ таких шифрограмм.

    source:

    • Slide1/Task3.py

    input:

    • enc_text1.txt
    • enc_text2.txt
    • enc_text3.txt
    • freq.txt (файл частот)

    output:

    • dec_enc_text1.txt
    • dec_enc_text2.txt
    • dec_enc_text3.txt
  4. Реализовать шифрование методом одноразовый блокнот.

    source:

    • Slide2.py

    input: сообщение и ключ

    Для абсолютной криптографической стойкости ключ должен обладать тремя критически важными свойствами:

    • иметь случайное равномерное распределение;
    • совпадать по размеру с заданным открытым текстом;
    • применяться только один раз.
  5. Реализовать XOR при помощи and, or, not

    source:

    • Slide2.py
    def xor(a, b):
    	return (a & ~b) | (~a & b)

Лекция 2

  1. Для анализа взять тексты (2000-3000 знаков) на русском, украинском и английском языках. Оценить вероятность появления битов 0 или 1 в каждой позиции символа.

    source:

    • Task1.py

    input:

    • text1.txt
    • text2.txt
    • text3.txt

    output:

    • ent_text1.txt
    • ent_text2.txt
    • ent_text3.txt

Лекция 3

  1. Разложение на множители.

    source:

    • Task1.py Example

К началу

About

BPiD - Turuta


Languages

Language:Python 97.7%Language:Shell 2.3%