Загрузка данных


Sub CreateCryptoPresentation()
    Dim pptPres As Presentation
    Dim pptSlide As Slide
    Dim pptLayout As CustomLayout
    Dim slideIndex As Integer
    Dim sld As Slide
    
    ' Создаем новую презентацию
    Set pptPres = Presentations.Add
    
    ' Настройка макета (2 = Заголовок и текст, 1 = Только заголовок, 12 = Пустой слайд)
    ' Мы будем использовать стандартные макеты. Если их нет, создадим вручную.
    
    ' --- СЛАЙД 1: Титульный ---
    Set pptSlide = pptPres.Slides.Add(1, ppLayoutTitle)
    pptSlide.Shapes(1).TextFrame.TextRange.Text = "Криптография"
    pptSlide.Shapes(2).TextFrame.TextRange.Text = "Наука о методах защиты информации с помощью шифрования"
    
    ' --- СЛАЙД 2: Основные понятия (Часть 1) ---
    Set pptSlide = pptPres.Slides.Add(2, ppLayoutText)
    pptSlide.Shapes(1).TextFrame.TextRange.Text = "Основные понятия"
    pptSlide.Shapes(2).TextFrame.TextRange.Text = "• Шифрование: Преобразование данных в нечитаемый вид" & vbCrLf & _
                                                  "• Дешифрование: Обратное преобразование" & vbCrLf & _
                                                  "• Ключ: Параметр, управляющий шифрованием" & vbCrLf & _
                                                  "• Шифр: Алгоритм шифрования" & vbCrLf & _
                                                  "• Открытый текст: Исходные данные" & vbCrLf & _
                                                  "• Шифртекст: Зашифрованные данные"
    
    ' --- СЛАЙД 3: Виды шифрования (Ключи) ---
    Set pptSlide = pptPres.Slides.Add(3, ppLayoutText)
    pptSlide.Shapes(1).TextFrame.TextRange.Text = "Виды шифрования по типу ключа"
    pptSlide.Shapes(2).TextFrame.TextRange.Text = "• Симметричное: Один ключ для шифрования и дешифрования" & vbCrLf & _
                                                  "• Асимметричное: Пара ключей (открытый + закрытый)" & vbCrLf & _
                                                  "• Хеширование: Без ключа (необратимое преобразование)"
                                                  
    ' --- СЛАЙД 4: Исторические шифры (Часть 1) ---
    Set pptSlide = pptPres.Slides.Add(4, ppLayoutText)
    pptSlide.Shapes(1).TextFrame.TextRange.Text = "Исторические шифры"
    pptSlide.Shapes(2).TextFrame.TextRange.Text = "• Шифр Цезаря — сдвиг букв" & vbCrLf & _
                                                  "• Шифр Виженера — сдвиг по ключевому слову" & vbCrLf & _
                                                  "• Шифр Атбаш — зеркальная замена алфавита" & vbCrLf & _
                                                  "• Решётка Кардано — перестановка"
                                                  
    ' --- СЛАЙД 5: Современные принципы ---
    Set pptSlide = pptPres.Slides.Add(5, ppLayoutText)
    pptSlide.Shapes(1).TextFrame.TextRange.Text = "Современные принципы"
    pptSlide.Shapes(2).TextFrame.TextRange.Text = "• Примеры алгоритмов: AES, DES, ГОСТ 28147-89, RSA, ECC, ГОСТ Р 34.10, SHA-256, MD5, ГОСТ Р 34.11" & vbCrLf & _
                                                  "• Принцип Керкгоффса: Стойкость шифра зависит только от ключа, а не от секретности алгоритма" & vbCrLf & _
                                                  "• Лавинный эффект: Малое изменение входа -> большое изменение выхода" & vbCrLf & _
                                                  "• Криптостойкость: Сложность взлома"
                                                  
    ' --- СЛАЙД 6: Задание 1.1 (Определения) ---
    Set pptSlide = pptPres.Slides.Add(6, ppLayoutText)
    pptSlide.Shapes(1).TextFrame.TextRange.Text = "Задание 1.1. Дайте определения"
    pptSlide.Shapes(2).TextFrame.TextRange.Text = "• Криптография" & vbCrLf & _
                                                  "• Шифрование" & vbCrLf & _
                                                  "• Дешифрование" & vbCrLf & _
                                                  "• Ключ" & vbCrLf & _
                                                  "• Шифр" & vbCrLf & _
                                                  "• Открытый текст" & vbCrLf & _
                                                  "• Шифртекст" & vbCrLf & _
                                                  "• Криптостойкость" & vbCrLf & _
                                                  "• Хеш-функция" & vbCrLf & _
                                                  "• Электронная подпись"
                                                  
    ' --- СЛАЙД 7: Задание 1.2 (Таблица видов) ---
    Set pptSlide = pptPres.Slides.Add(7, ppLayoutText)
    pptSlide.Shapes(1).TextFrame.TextRange.Text = "Задание 1.2. Виды шифрования (Таблица)"
    pptSlide.Shapes(2).TextFrame.TextRange.Text = "Заполните таблицу:" & vbCrLf & vbCrLf & _
                                                  "Вид | Ключи | Скорость | Безопасность" & vbCrLf & _
                                                  "Симметричное | ... | ... | ..." & vbCrLf & _
                                                  "Асимметричное | ... | ... | ..." & vbCrLf & _
                                                  "Хеширование | ... | ... | ..."
                                                  
    ' --- СЛАЙД 8: Задание 1.3 (Исторические шифры - Таблица) ---
    Set pptSlide = pptPres.Slides.Add(8, ppLayoutText)
    pptSlide.Shapes(1).TextFrame.TextRange.Text = "Задание 1.3. Исторические шифры"
    pptSlide.Shapes(2).TextFrame.TextRange.Text = "Заполните таблицу:" & vbCrLf & vbCrLf & _
                                                  "Шифр | Принцип | Ключ | Стойкость | Примеры" & vbCrLf & _
                                                  "Цезаря | ... | ... | ... | ..." & vbCrLf & _
                                                  "Виженера | ... | ... | ... | ..." & vbCrLf & _
                                                  "Атбаш | ... | ... | ... | ..." & vbCrLf & _
                                                  "Решётка Кардано | ... | ... | ... | ..."
                                                  
    ' --- СЛАЙД 9: Задание 1.4 (Вопросы) ---
    Set pptSlide = pptPres.Slides.Add(9, ppLayoutText)
    pptSlide.Shapes(1).TextFrame.TextRange.Text = "Задание 1.4. Ответьте на вопросы"
    pptSlide.Shapes(2).TextFrame.TextRange.Text = "• Чем шифрование отличается от кодирования?" & vbCrLf & _
                                                  "• Почему принцип Керкгоффса важен?" & vbCrLf & _
                                                  "• Что такое лавинный эффект?" & vbCrLf & _
                                                  "• Зачем нужна электронная подпись?"
                                                  
    ' --- СЛАЙД 10: Задание 1.5 (Современные алгоритмы) ---
    Set pptSlide = pptPres.Slides.Add(10, ppLayoutText)
    pptSlide.Shapes(1).TextFrame.TextRange.Text = "Задание 1.5. Современные алгоритмы"
    pptSlide.Shapes(2).TextFrame.TextRange.Text = "Заполните таблицу:" & vbCrLf & vbCrLf & _
                                                  "Алгоритм | Тип | Длина ключа | Применение" & vbCrLf & _
                                                  "AES | ... | ... | ..." & vbCrLf & _
                                                  "RSA | ... | ... | ..." & vbCrLf & _
                                                  "SHA-256 | ... | ... | ..." & vbCrLf & _
                                                  "ГОСТ 28147-89 | ... | ... | ..." & vbCrLf & _
                                                  "ГОСТ Р 34.10 | ... | ... | ..."
                                                  
    ' --- СЛАЙД 11: Дополнительный слайд (Резерв) ---
    Set pptSlide = pptPres.Slides.Add(11, ppLayoutText)
    pptSlide.Shapes(1).TextFrame.TextRange.Text = "Симметричное шифрование"
    pptSlide.Shapes(2).TextFrame.TextRange.Text = "• Использует один и тот же ключ для шифрования и расшифровки." & vbCrLf & _
                                                  "• Высокая скорость работы." & vbCrLf & _
                                                  "• Проблема распределения ключей." & vbCrLf & _
                                                  "• Примеры: AES, DES, ГОСТ 28147-89."
                                                  
    ' --- СЛАЙД 12: Дополнительный слайд (Резерв) ---
    Set pptSlide = pptPres.Slides.Add(12, ppLayoutText)
    pptSlide.Shapes(1).TextFrame.TextRange.Text = "Асимметричное шифрование"
    pptSlide.Shapes(2).TextFrame.TextRange.Text = "• Использует пару ключей: открытый и закрытый." & vbCrLf & _
                                                  "• Открытый ключ для шифрования, закрытый для расшифровки." & vbCrLf & _
                                                  "• Решает проблему распределения ключей." & vbCrLf & _
                                                  "• Примеры: RSA, ECC, ГОСТ Р 34.10."
                                                  
    ' --- СЛАЙД 13: Дополнительный слайд (Резерв) ---
    Set pptSlide = pptPres.Slides.Add(13, ppLayoutText)
    pptSlide.Shapes(1).TextFrame.TextRange.Text = "Хеширование"
    pptSlide.Shapes(2).TextFrame.TextRange.Text = "• Преобразование данных в строку фиксированной длины." & vbCrLf & _
                                                  "• Необратимость (нельзя восстановить исходные данные)." & vbCrLf & _
                                                  "• Используется для проверки целостности." & vbCrLf & _
                                                  "• Примеры: SHA-256, MD5, ГОСТ Р 34.11."
                                                  
    ' --- СЛАЙД 14: Дополнительный слайд (Резерв) ---
    Set pptSlide = pptPres.Slides.Add(14, ppLayoutText)
    pptSlide.Shapes(1).TextFrame.TextRange.Text = "Электронная подпись"
    pptSlide.Shapes(2).TextFrame.TextRange.Text = "• Аналог собственноручной подписи." & vbCrLf & _
                                                  "• Обеспечивает аутентификацию и целостность." & vbCrLf & _
                                                  "• Использует асимметричные алгоритмы." & vbCrLf & _
                                                  "• Юридическая значимость."
                                                  
    ' --- СЛАЙД 15: Дополнительный слайд (Резерв) ---
    Set pptSlide = pptPres.Slides.Add(15, ppLayoutText)
    pptSlide.Shapes(1).TextFrame.TextRange.Text = "Принцип Керкгоффса"
    pptSlide.Shapes(2).TextFrame.TextRange.Text = "• Стойкость шифра зависит только от ключа." & vbCrLf & _
                                                  "• Алгоритм может быть известен всем." & vbCrLf & _
                                                  "• Это стандарт современной криптографии." & vbCrLf & _
                                                  "• Позволяет проводить открытый аудит алгоритмов."
                                                  
    ' --- СЛАЙД 16: Итоговый слайд ---
    Set pptSlide = pptPres.Slides.Add(16, ppLayoutText)
    pptSlide.Shapes(1).TextFrame.TextRange.Text = "Спасибо за внимание!"
    pptSlide.Shapes(2).TextFrame.TextRange.Text = "Вопросы?" & vbCrLf & vbCrLf & _
                                                  "Криптография — основа безопасности в цифровом мире."
    
    ' Настройка шрифтов (опционально)
    For Each sld In pptPres.Slides
        sld.Shapes(1).TextFrame.TextRange.Font.Size = 36
        sld.Shapes(1).TextFrame.TextRange.Font.Bold = True
        If sld.Shapes.Count > 1 Then
            sld.Shapes(2).TextFrame.TextRange.Font.Size = 20
        End If
    Next sld
    
    MsgBox "Презентация успешно создана! (16 слайдов)", vbInformation
End Sub