- •Введение
- •1Лабораторная работа №1 «Симметричные алгоритмы шифрования»
- •Порядок выполнения работы:
- •2Лабораторная работа №2 “Асимметричный алгоритм шифрования rsa”
- •Порядок выполнения работы:
- •3Лабораторная работа №3 «Электронно-цифровая подпись»
- •Порядок выполнения работы:
- •Лабораторная работа №4 «Создание и распределение криптографических ключей».
- •Порядок выполнения работы:
- •Лабораторная работа №5 «Создание сертификатов» в windows
- •Порядок выполнения работы:
- •Лабораторная работа № 6 «Протокол защиты электронной почты s/mime»
- •Порядок выполнения работы:
- •Лабораторная работа №7 «Стек протоколов ssl/tls»
- •Порядок выполнения работы:
- •Метод обмена ключами – anonymous dh (adh)
- •Метод обмена ключами – rsa
- •Литература
- •1 Лабораторная работа №1 «Симметричные алгоритмы шифрования» 3
- •2 Лабораторная работа №2 “Асимметричный алгоритм шифрования rsa” 7
- •3 Лабораторная работа №3 «Электронно-цифровая подпись» 11
Порядок выполнения работы:
Для выполнения лабораторной работы создать каталог ./lab1.
1 |
В каталоге lab1 создать текстовый файл f.txt с произвольным текстом. |
2 |
Зашифровать файл f.txt, используя алгоритм DES в режиме ECB. Ключ алгоритма создается на основании пароля. Результат записать в файл f.txt.des: openssl des -in f.txt -out f.txt.des –e –k 12345 |
3 |
Расшифровать файл f.txt.des. Результат записать в файл f1.txt: openssl des -in f.txt.des -out f1.txt -d -k 12345 |
4 |
По паролю создать ключ, начальный вектор IV и вектор подмешивания (salt) для алгоритма DES в режиме CBC. Результат записать в файл en: openssl des -P -k 12345 >en.txt |
5 |
Файл en сделать исполняемым. В этом файле набрать команду, позволяющую зашифровать файл f.txt, используя созданные ключ, начальный вектор IV и вектор подмешивания. Результат записать в файл f.txt.des: openssl des -in f.txt -out f.txt.des -e -K <ключ> -iv <IV> |
6 |
Создать исполняемый файл. В этом файле набрать команду, позволяющую расшифровать файл f.txt.des, используя созданные ключ, начальный вектор IV и вектор подмешивания. Результат записать в файл f2.txt:
openssl des -in f.txt.des -out f2.txt -d -K <ключ> -iv <IV> |
2Лабораторная работа №2 “Асимметричный алгоритм шифрования rsa”
Криптографический алгоритм называется асимметричным, поскольку для шифрования и расшифрования информации используются разные ключи.
Чтобы использовать асимметричный алгоритм шифрования RSA вначале надо создать ключевую пару RSA <KO, КС>. Если информация шифруется открытым ключом KO, расшифровывать ее надо секретным ключом, или наоборот.
Ключи КО и КС – большие целые числа (вернее, каждый ключ – несколько больших целых чисел). Надежность алгоритма зависит от длины ключа, т.е. от длины целых чисел. В настоящее время длина секретного ключа асимметричного алгоритма должна быть не менее 1024 бита. Открытый ключ КО передают всем желающим, а ключ КС надо держать в секрете. Поэтому обычно секретный ключ шифруется симметричным алгоритмом и хранится в зашифрованном виде.
Цель работы: Научиться шифровать информацию асимметричным алгоритмом RSA, используя программу openssl.
Краткое описание команды GENRSA
Команда genrsa программы openssl генерирует секретный ключ алгоритма RSA.
openssl genrsa [-out filename] [-passout arg] [-des] [-des3] [-des] [-f4] [-3] [-rand file(s)] [-engine id] [numbits]
Опции команды:
Параметр |
Назначение параметра |
-out filename |
Имя выходного файла. Если имя не указано стандартный вывод будет использоваться. |
-passout arg |
Определяет пароль для создания ключа. |
-des|-des3|-des
|
Если эти опции указаны, секретный ключ шифруется симметричным алгоритмом DES, тройным DES или DES, соответственно. Если ни одна из этих опций не указана, ключ не шифруется. Если шифрование производится, пароль вводится с консоли или с помощью опции -passout |
-rand file(s)
|
Файл или файлы, содержащие случайные данные для генератора псевдослучайных чисел. |
numbits
|
Размер в битах генерируемого секретного ключа. По умолчанию 512. |
Краткое описание команды RSA
Команда rsa программы openssl позволяет управлять ключами RSA:
по секретному ключу можно создать открытый ключ;
ключи можно конвертироваться из одного формата в другой (PEM|NET|DER);
секретный ключ можно зашифровать или изменить алгоритм шифрования.
openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-sgckey] [-des] [-des3] [-des] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-engine id]
Опции команды:
Параметр |
Назначение параметра |
-inform DER|NET|PEM |
Определяет входной формат ключа (PEM по умолчанию). |
-outform DER|NET|PEM |
Определяет выходной формат ключа. |
-in filename |
Определяет файл, из которого надо прочитать ключ (standard input если опция не указана). |
-passin arg |
Определяет пароль ключа, находящегося во входном файле. Может принимать значения: |
pass:password – непосредственное задание пароля |
|
env:var – пароль задан в переменной окружения var. |
|
file:pathname – пароль задается первой строкой файла pathname. |
|
fd:number – прочитать пароль используя файловый дескриптор number. |
|
-out filename |
Определяет файл, в который надо записать ключ (standard output если опция не указана). Если опции шифрования указаны пароль должен быть указан. Входной и выходной файлы должны иметь разные имена. |
-passout password
|
Определяет пароль ключа, который записывается в выходной файл. Принимает такие же значения, как и -passin arg. |
-des|-des3|-des
|
Секретный ключ шифруется указанным алгоритмом и затем записывается в выходной файл. Должна быть указана опция -passout password. Таким образом, можно поменять пароль (алгоритм шифрования) секретного ключа или зашифровать незашифрованный ключ, |
-text
|
Печатать различные компоненты открытого и секретного ключей дополнительно к зашифрованной версии. |
-noout |
Не позволяет выводить зашифрованную версию ключа. |
-modulus |
Печатать значение модуля ключа. |
-pubin |
По умолчанию из входного файла читается секретный ключ. Если эта опция указана, из входного файла читается открытый ключ. |
-pubout |
По умолчанию в выходной файл записывается секретный ключ. Если эта опция указана в выходной файл записывается открытый ключ. Опция автоматически устанавливается, если из входного файла читается открытый ключ. |
Описание команды RSAUTL
Для шифрования и расшифрования информации алгоритмом RSA используют команду rsautl программы openssl.
Синтаксис
openssl rsautl [-in file] [-out file] [-inkey file] [-pubin] [-certin] [-sign] [-verify] [-encrypt] [-decrypt] [-pkcs] [-ssl] [-raw] [-hexdump] [-asn1parse]
Опции команды:
Параметр |
Назначение параметра |
-in filename |
Определяет файл, из которого будут прочитаны исходные данные. Данные читаются со стандартного ввода, если опция не определена. |
-out filename |
Определяет файл, в который будут записаны выходные данные. Стандартный вывод по умолчанию. |
-inkey file |
Файл входного ключа. По умолчанию – секретный ключ RSA. |
-pubin |
Входной ключ – открытый ключ RSA. |
-encrypt |
Зашифровать входные данные, используя открытый ключ RSA. |
-decrypt |
Расшифровать входные данные, используя секретный ключ RSA. |
-sign |
Зашифровать входные данные, используя секретный ключ RSA. |
-verify |
Расшифровать входные данные, используя открытый ключ RSA. |
