# Квантовая криптография - менторский проект ## Симулятор Симулятор лежит в папке `model`. Его главные элементы: - Абстрактный класс `Channel` ([тут](model/channel.py)). В нем описаны методы, которые должны быть у канала. Теоретически можно написать реализацию даже для реального оборудования, но тут есть только `ChannelSym` - симуляция канала. - Класс `Alice` ([тут](model/alice.py)). Объекты этого класса используют канал (то есть объект любого класса, реализующего абстрактные методы из `Channel`) и реализуют протокол генерации ключа BB84 со стороны отправителя. - Класс `Bob` ([тут](model/bob.py)). Как Алиса, только не Алиса, а Боб: реализует получателя в протоколе - Класс `EveBS` ([тут](model/eve.py)). Реализует beam splitter атаку на `ChannelSym` !["Экспериментальный" график R, E от Pdc](images/re_vs_pdc.png) !["Экспериментальный" график R, E от Pdc с учетом Евы](images/re_vs_pdc_eve.png) ![Пример генерации ключа](images/qcd_example.png)