Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Языки и методы программирования - лекция-1: про...

Anton
December 08, 2024

Языки и методы программирования - лекция-1: производительность интеллектуального труда

Лекция курса "Языки и методы программирования"
Лекция-1 (введение): производительность интеллектуального труда
- Что такое программа
- Что такое идея
- Для чего нужны вычислительные устройства
- Производительность интеллектуального труда
- Расшифровка зашифрованных сигналов в ограниченное время в военных условиях (история с Энигмой)
- Шифр «Жюля Верна»

Anton

December 08, 2024
Tweet

More Decks by Anton

Other Decks in Education

Transcript

  1. • Установочный файл в магазине приложений? • Исполняемый файл в

    компьютере (exe)? • Текст на языке программирования? • Диаграмма с квадратиками и стрелочками?
  2. • Текст на бумаге — программа? • Текст на доске

    — программа? • Текст в среде разработки — программа? • Двоичный код в исполняемом файле — программа? • Текст в голове — программа?
  3. Что такое идея? • Мысли рождаются в голове • Идея

    — мысль, отвечающая на вопрос «что делать?» • Всякая или мысль является идеей? • Является ли программа идеей? • Всякая ли идея является программой?
  4. • «Наступила осень, листья опадают» — мысль, идея? • «Нужно

    приехать сегодня на лекцию» — мысль, идея? • «Нужно приехать сегодня на лекцию» — программа? • «Нужно приехать сегодня на лекцию» — компьютерная программа?
  5. • Программирование — это формулирование идей о том, как должно

    работать устройство, на специальных языках программирования • Короче: программирование — формулирование идей • Разработчики программ трудятся в сфере идей • Плод труда — идея, продукт интеллекта, интеллектуальный продукт • Программисты — интеллигенты
  6. Программа — это идея, отвечающая на вопрос «как будет работать

    механизм», сформулированная на специальном языке.
  7. • Специальный язык здесь — это такой язык, высказывание на

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

    записано на специальном материальном носителе, может быть подключено к телу исполнительного механизма в качестве составной детали, материальная конфигурация которой определит последовательность действий механизма, воплотив таким образом в материи исходную идею, записанную на языке программы, т.е. воплотит программу в жизнь или воплотит идею в жизнь.
  9. • Специальный носитель здесь — любой материальный носитель, предусмотренный конструкцией

    исполнительного устройства/механизма. • Например, барабан с штырями для шарманки или лист картонки с отверстиями, т.е. перфокарта, или комбинация механических переключателей или любой носитель на технологии полупроводников.
  10. История с Энигмой — шифрование во время войны • Важно

    ли располагать информацией на поле боя? • Важно ли иметь возможность передавать указания и получать данные от частей армии? • Поле боя раньше: широкое поле, всё можно охватить одним взглядом (в подзорную трубу) • Поле боя 2-я мировая: весь шарик — суша и океан
  11. Связь между Центром и удаленным подразделением? • Канал связи: телеграф

    или радио — ок • Радио: широкое вещание во все стороны, можно ли использовать открытый канал? • Как передать данные так, чтобы их получили все, но прочитать могли только немногие?
  12. • Ответ: блокноты с одноразовыми кодами шифров • Кулстори: генерация

    случайных чисел для шифрования — секретарша + завязанные глаза + аквариум — Криптономикон • (если коды шифрования будут не случайные, т. е. не равновероятные, это не даст сразу ответ, наиболее вероятные варианты можно попробовать в первую очередь, радикально сократив время до получения ответа)
  13. Энигма • На словах: примерный принцип шифровки и расшифровки •

    Поворачиваем зубчатые колеса, нажимаем на клавиши, смотрим на лампочки
  14. • Криптономикон, Нил Стивенсон • Ю-571 (2000, Мэтью Макконехи) (в

    действительности первую Энигму захватили британцы, а не американцы) • Энигма (2001) • Игра в имитацию (2014, Бенедикт Камбербэтч)
  15. Допустим, у нас есть зашифрованный текст • Но нет кодов

    шифровки • Как получить исходное сообщение? • На словах: принцип подбора кода шифра, условие останова • Если расшифровали одно сообщение, то код шифрования подойдет для всех остальных за текущий день • На следующий день нужно повторить процедуру с первым сообщением
  16. Если есть текст и алгоритм • Перебирать вручную — цель

    достижима, но пройдет несколько дней, информация будет не нужна • Сделать переборный автомат, результат можно получить в начале дня и сразу пользоваться
  17. Шифр «Жюля Верна» • Простое перемешивание алфавита • Описан в

    романе «Путешествие к центру Земли» (1864) • n=3: БЕГЕМОТ - > ГОИОЖМШ • n=3: ЙМХМТМИ -> НОСОРОГ • n=3: БКРАГ -> ??? (самостоятельно)
  18. Шифр «Жюля Верна» • n=3: БКРАГ -> КШЪАБ • wft??

    • n=3 — не подходит • с другим значением есть шанс, что получится получить нормальное слово (но это не точно) • Как проверить? • Перебор всех вариантов: n=2,…,(N-1) • N=33 • Попробуйте вариант n=5
  19. Самостоятельно • Поступило задание, расшифровать сообщение: • «ГЮЁЮКЭВЮЪСЙДЮКЭВЕЪКАСЬФЕЗГЪИЪСЗЧЕЮХСЭЖЕ» • Известно:

    - алфавит кириллица 33 буквы, - шифр с двойным перемешиванием: исходный алфавит перемешивается с кодом n1, затем перемешанный алфавит — еще раз перемешивается с кодом n2 • Задача: подобрать значения n1=?, n2=?