Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

IB_OTVET_2_1

.pdf
Скачиваний:
52
Добавлен:
21.03.2016
Размер:
2.21 Mб
Скачать
Сi :=Si Å Ti

Недостатки симметричных систем:

1.необходимость передачи секретных информаций

2.высокие требования к службе генерации ключей. При взаимодействии пользователей “каждый с каждым” необходимо сгенерировать n(n-1)/2 ключей, т.е. зависимость числа ключей от числа абонентов является квадратичной.

8 Гаммирование. Общее понятие и применение.

Гаммирование является также широко применяемым криптографическим преобразованием.

Принцип шифрования гаммированием заключается в генерации гаммы шифра с помощью датчика псевдослучайных чисел и наложении полученной гаммы на открытые данные обратимым образом (например, используя сложение по модулю 2).

Процесс дешифрования данных сводится к повторной генерации гаммы шифра при известном ключе и наложении такой гаммы на зашифрованные данные.

Пусть имеется датчик псевдослучайных чисел, работающий по некоторому определённому алгоритму. Часто используют следующий алгоритм:

Ti+1 :=(a∙Ti+b) mod c,

где Ti предыдущее псевдослучайное число, Ti+1 – следующее псевдослучайное число, а коэффициенты a,b,c постоянны и хорошо известны.

Обычно с=2n, где n разрядность процессора, a mod 4=1, а b – нечётное. В этом случае последовательность псевдослучайных чисел имеет период c.

Процесс шифрования осуществляется следующим образом: шифруемое сообщение представляется в виде последовательности слов S0, S1,…, каждое длины n, которые складываются по модулю 2 со словами по-

следовательности T0, T1, …, то есть

Последовательность T0, T1, …, называется гаммой шифра. Å – логическая операция XOR.

Примечание: Логическая операция XOR (сложение по модулю 2, исключающее «или») имеет следующую таблицу истинности:

XOR

0

1

0

0

1

1

1

0

Процесс расшифровывания заключается в том, чтобы ещё раз сложить шифрованную последова-

тельность с той же гаммой шифра:

Si := Сi Å Ti.

Ключом шифра является начальное значение Т0, которое является секретным и должно быть известно только отправителю и получателю шифрованного сообщения.

Если период последовательности псевдослучайных чисел достаточно велик, чтобы гамма шифра была длиннее сообщения, то дешифровать сообщение можно только подбором ключа. При увеличе-

нии n экспоненциально увеличивается криптостойкость шифра.

Данный метод шифрования обладает существенным недостатком. Если известна хотя бы часть исходного сообщения, то всё сообщение может быть легко дешифровано. Действительно, пусть известно одно исходное

слово Si. Тогда: Ti := Сi Å Si. И далее вся правая часть гаммы шифра определяется по указанной формуле датчика псевдослучайных чисел.

10. Генераторы случайных чисел: типы, применение. Число инициализации.

ГПСЧ — алгоритм, генерирующий последовательность чисел, элементы которой почти независимы друг от друга и подчиняются заданному распределению (обычно равномерному).

Любой ГПСЧ с ограниченными ресурсами рано или поздно зацикливается — начинает повторять одну и ту

же последовательность чисел. Длина циклов ГПСЧ зависит от генератора и составляет около 2n/2, где n — размер внутреннего состояния в битах. Если порождаемая последовательность сходится к слишком коротким циклам, то такой ГПСЧ становится предсказуемым и непригодным для практических приложений.

Наравне с существующей необходимостью генерировать легко воспроизводимые последовательности случайных чисел, также существует необходимость генерировать совершенно непредсказуемые или попросту абсолютно случайные числа. Такие генераторы называются генераторами случайных чисел. Так как такие генераторы чаще всего применяются для генерации уникальных симметричных и асимметричных ключей для шифрования, они чаще всего строятся из комбинации криптостойкого ГПСЧ и внешнего источника энтропии. Пример простейшего ГСЧ с источником энтропии: Если в качестве источника энтропии использовать текущее время, то для получения натурального числа от 0 до N достаточно вычислить остаток от деления текущего времени в миллисекундах на число N+1. Недостатком этого ГСЧ является то, что в течение одной миллисекунды он выдает одно и то же число.

Разновидностью ГПСЧ являются ГПСБ (PRBG) — генераторы псевдо-случайных бит, а также различных поточных шифров. ГПСЧ, как и поточные шифры, состоят из внутреннего состояния (обычно размером от 16 бит до нескольких мегабайт), функции инициализации внутреннего состояния ключом, функции обновления внутреннего состояния и функции вывода. ГПСЧ подразделяются на простые арифметические, сломанные криптографические и криптостойкие. Их общее предназначение — генерация последовательностей чисел, которые невозможно отличить от случайных вычислительными методами.

Аппаратный ГСЧ — устройство, которое генерирует последовательности случайных чисел на основе измеряемых параметров протекающего физического процесса (тепловой шум, фотоэлектрический эффект, другие квантовые явления). Эти процессы, в теории, абсолютно непредсказуемы. Аппаратные генераторы случайных чисел, основанные на квантовых процессах, обычно состоят из специального усилителя и преобразователя.

Криптостойкий ГПСЧ — это ГПСЧ с определенными свойствами, позволяющими использовать его в криптографии. Требования к КСГПСЧ можно разделить на 2 группы — во первых, они должны проходить статистические тесты на случайность, во вторых, они должны сохранять непредсказуемость даже если часть их исходного или текущего состояния становится известна криптоаналитику.

Каждый КСГПСЧ должен удовлетворять «тесту на следующий бит».

Т.е.: не должно существовать полиномиального алгоритма, который, зная первые k бит случайной последова-

тельности, сможет предказать k+1 бит с вероятностью более 50%. Доказано, что генератор, прошедший «тест на следующий бит», пройдет и любые другие статистические тесты на случайность, выполнимые за полиномиальное время.

Каждый КСГПСЧ должен оставаться надежным даже в случае, когда часть или все его состояния стало известно (или было корректно вычислено). Это значит, что не должно быть возможности получить случайную последовательность, созданную генератором, предшествующую получению этого знания криптоаналитиком.

Пример: пусть генератор основывается на выводе бит какого-то представления числа Пи, начиная с какой то неизвестной точки. Такой генератор, возможно и пройдет «тест на следующий бит», так как ПИ является случайной последовательностью. Однако этот подход не является критографически надежным — если криптоаналитик определит, какой бит числа Пи используется в данный момент, он сможет вычислить и все предшествующие биты.

Рассмотрим три класса реализации КСГПСЧ: На основе криптографических алгоритмов, На основе вычислительно сложных математических задач, Специальные реализации. В последних часто используются дополнительные источники энтропии, поэтому, строго говоря, они не являются «чистыми» генераторами, так как их выход не полностью определяется исходным состоянием. Это позволяет дополнительно защититься от атак, направленных на определение исходного состояния.

Реализации на основе криптографических алгоритмов

Безопасный блочный шифр можно преобразовать в КСГПСЧ запустив его в режиме счетчика. Таким образом, выбрав случайный ключ, можно получать следующий случайный блок применяя алгоритм к последовательным натуральным числам. Счет можно начинать с произвольного натурального числа. Очевидно, что пе-

риодом будет не больше чем 2n для n-битного блочного шифра. Также очевидно, что безопасность такой схемы полностью зависит от секретности ключа. Криптографически стойкая хеш-функция также может быть преобразованна в КСГПСЧ. В таком случае исходное значение счетчика должно оставаться в секрете. Большинство потоковых шифров работают на основе генерации псевдослучайного потока бит, которые некоторым образом комбинируется (почти всегда с помощью операции XOR) с битами открытого текста. Запуск такого шифра на последовательности натуральных чисел даст новую псевдослучайную последовательность, возможно, даже с более длинным периодом. Такой метод безопасен только если в самом потоковом шифре используется надежный КСГПСЧ (что не всегда так). Опять же, начальное состояние счетчика должно оставаться секретным.

Реализации на основе математических задач

на предполагаемой сложности факторизации целых чисел. Однако, этот алгоритм отличается очень медленной работой.

на задаче дискретного логарифма.

Специальные реализации

с учетом криптографической стойкости, например

Алгоритм Ярроу который пытается определить энтропию входных данных. Он используется в FreeBSD, OpenBSD и Mac OS X

Алгоритм Fortuna, наследник алгоритма Ярроу.

Специальный файл ОС UNIX /dev/random, в частности, /dev/urandom, реализованный в Linux. Функция CryptGenRandom предоставленная в CryptoAPI компании Microsoft

9. ГОСТ 28147-89. Ключевая информация. Основной шаг криптоприобразования.

В ГОСТе ключевая информация состоит из двух структур данных. Помимо собственно ключа, необходимого для всех шифров, она содержит еще и таблицу замен.

1. Ключ является массивом из восьми 32-битных элементов кода, далее в настоящей работе он обозначается символом К: K {Ki }0 i 7 . В ГОСТе элементы ключа используются как 32-разрядные целые числа без знака:

0 Ki 232 . Таким образом, размер ключа составляет 32·8=256 бит или 32 байта.

2. Таблица замен является матрицей 8 16, содержащей 4-битовые элементы, которые можно представить в виде целых чисел от 0 до 15. Строки таблицы замен называются узлами замен, они должны содержать различные значения, то есть каждый узел замен должен содержать 16 различных чисел от 0 до 15 в произволь-

ном порядке. Здесь таблица замен обозначается символом H:

H {H }0 i 7 ,0 H

15

. Т.о., общий объем

i , j 0 j 15

 

i , j

 

таблицы замен равен: 8 узлов 16 элементов/узел 4 бита/элемент = 512 бит или 64 байта.

 

 

 

Основной шаг криптопреобразования.

 

 

0

 

 

 

Начало (N, X)

 

 

 

является оператором, определяющим преобразование 64-битового

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

блока данных. Дополнительным параметром этого оператора яв-

 

 

1

 

 

 

S ( N1 X ) mod 232

ляется 32-битовый блок, в качестве которого используется какой-

 

 

 

 

 

 

 

 

 

 

 

m = 0..7

 

либо элемент ключа.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

Øàã 0.Определяет исходные данные для основного шага крипто-

 

 

Sm Hm ,Sm

 

 

преобразования:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N–преобразуемый 64-битовый блок данных, в ходе выполнения

 

 

 

 

 

 

 

3

 

 

 

 

S 11(S )

шага его младшая (N1) и старшая (N2) части обрабатываются как

 

 

 

 

 

отдельные 32-битовые целые числа без знака. Таким образом,

 

 

4

 

 

можно записать N=(N1,N2). X–32-битовый элемент ключа;

 

 

S S N2

 

 

 

 

 

Øàã 1.Сложение с ключом. Младшая половина преобразуемого

 

 

 

 

 

блока складывается по модулю 2

32

с используемым на шаге эле-

 

 

5

 

 

 

N2 N1, N1 S

 

 

ментом ключа, результат передается на следующий шаг;

 

 

 

 

 

 

 

 

 

Øàã 2.Поблочная замена. 32-битовое значение, полученное на

6

Конец (N)

 

 

 

предыдущем шаге, интерпретируется как массив из восьми 4-

битовых блоков кода: S=(S0,S1,S2,S3,S4,S5,S6,S7).

Далее значение каждого из восьми блоков заменяется на новое, которое выбирается по таблице замен следующим образом: значение блока Si заменяется на Si-тый по порядку элемент (нумерация с нуля) i-того узла замен (т.е. i-той строки таблицы замен, нумерация также с нуля). Другими словами, в качестве замены для значения блока выбирается элемент из таблицы замен с номером строки, равным номеру заменяемого блока, и номером столбца, равным значению заменяемого блока как 4-битового целого неотрицательного числа. Теперь становится понятным размер таблицы замен: число строк в ней равно числу 4-битных элементов в 32битном блоке данных, то есть восьми, а число столбцов равно числу различных значений 4-битного блока данных, равному как известно 24, шестнадцати.

Øàã 0.Циклический сдвиг на 11 бит влево. Результат предыдущего шага сдвигается циклически на 11 бит в

сторону старших разрядов

11 обозначена

функция циклического сдвига своего аргумента на 11 бит в сторону старших разрядов.

 

Øàã 1.Побитовое сложение: значение, полученное на шаге 3, побитно складывается по модулю 2 со старшей половиной преобразуемого блока.

Øàã 2.Сдвиг по цепочке: младшая часть преобразуемого блока сдвигается на место старшей, а на ее место помещается результат выполнения предыдущего шага.

Øàã 3.Полученное значение преобразуемого блока возвращается как результат выполнения алгоритма основного шага криптопреобразования.

10. ГОСТ 28147-89. Режимы шифрования. Имитовставка: понятие и применение.

ГОСТ 28147-89 предусматривает три следующих режима шифрования данных: простая замена, гаммирование, гаммирование с обратной связью, и один дополнительный режим выработки имитовставки.

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

Tо,Tш–массивы соответственно открытых и зашифрованных данных; Ti ,Tiш i-тые по порядку 64-битные блоки соответственно открытых и зашифрованных данных:TО (T1о ,T2о ,...,Tnо ) , Tш (T1Ш ,T2Ш ,...,TnШ ) , последний блок

может быть неполным:

|T

о| |T ш| 64

при 1 i <n, 1 |T о| |T ш| 64

;n–число 64-битных блоков в массиве

i

i

n

n

данных; ЦX–функция преобразования 64-битного блока данных по алгоритму базового цикла «X»;

Простая замена. Зашифровывание заключается в применении цикла 32-З к блокам открытых данных, расшифровывание – цикла 32-Р к блокам зашифрованных данных. 64-битовые блоки данных обрабатываются независимо друг от друга. Размер массива открытых или зашифрованных данных, подвергающийся соответственно зашифровыванию или расшифровыванию, должен быть кратен 64 битам: |Tо|=|Tш|=64·n, после выполнения операции размер полученного массива данных не изменяется.

0

 

 

0

 

 

 

 

Начало (Tо)

Начало (Tш)

i = 1.. n

 

 

 

i = 1.. n

 

 

 

1

 

 

1

 

 

 

T

ш Ц

32 З

(T о )

T о

Ц

32 Р

(T ш )

i

 

i

i

 

i

2

 

 

2

 

 

 

 

Конец (Tш)

Конец (Tо)

Режим шифрования простой заменой имеет следующие особенности:

1.Т.к. блоки данных шифруются независимо друг от друга и от их позиции в массиве, при зашифровании двух одинаковых блоков открытого текста получаются одинаковые блоки шифротекста и наоборот. Отмеченное свойство позволит криптоаналитику сделать заключение о тождественности блоков исходных данных, если в массиве зашифрованных данных ему встретились идентичные блоки, что является недопустимым для серьезного шифра.

2.Если длина шифруемого массива данных не кратна 8 байтам или 64 битам, возникает проблема, чем и как дополнять последний неполный блок данных массива до полных 64 бит.

Такой режим может применяться только для шифрования массивов данных с размером кратным 64 битам, не содержащим повторяющихся 64-битных блоков. Размер ключа составляет 32 байта, а размер таблицы замен –

64байта. Кроме того, наличие повторяющихся 8-байтовых блоков в ключе или таблице замен будет говорить об их весьма плохом качестве, поэтому в реальных ключевых элементах такого повторения быть не может. Т.о. режим простой замены подходит для шифрования ключевой информации, тем более, что прочие режимы для этой цели менее удобны, поскольку требуют наличия дополнительного синхронизирующего элемента данных – синхропосылки. ГОСТ предписывает использовать режим простой замены исключительно для шифрования ключевых данных.

Гаммирование – это наложение на открытые (зашифрованные) данные криптографической гаммы, то есть последовательности элементов данных, вырабатываемых с помощью некоторого криптографического алгоритма, для получения зашифрованных (открытых) данных.

i)=Ц32-З(fi0))=Ц32-З(fi(Ц32-З(S)))=Ʊi(S,K), где Гi i-тый элемент
Ʊi+1=fi), где Ʊi

Для наложения гаммы при зашифровании и ее снятия при расшифровании должны использоваться взаимно обратные бинарные операции, например, сложение и вычитание по модулю 264 для 64-битных блоков данных. В ГОСТе для этой цели используется операция побитного сложения по модулю 2, поскольку она является обратной самой себе и к тому же наиболее просто реализуется. Все элементы гаммы различны для реальных шифруемых массивов и, следовательно, результат зашифрования даже двух одинаковых блоков в одном массиве данных будет различным. Хотя элементы гаммы и вырабатываются одинаковыми порциями в 64 бита, использоваться может и часть такого блока с размером, равным размеру шифруемого блока.

Гамма для этого режима получается следующим образом: с помощью РГПЧ вырабатываются 64-битные блоки данных, которые далее подвергаются преобразованию по циклу 32-З, то есть зашифрованию в режиме простой замены, в результате получаются блоки гаммы. Благодаря тому, что наложение и снятие гаммы осуществляется при помощи одной и той же операции побитового исключающего или, алгоритмы зашифрования и расшифрования в режиме гаммирования идентичны.

РГПЧ, используемый для выработки гаммы, является рекуррентной функцией:

элементы рекуррентной последовательности, f – функция преобразования. Следовательно, неизбежно возникает вопрос о его инициализации, то есть об элементе Ʊ0. В действительности, этот элемент данных является параметром алгоритма для режимов гаммирования, на схемах он обозначен как S, и называется в криптографии синхропосылкой, а в нашем ГОСТе – начальным заполнением одного из регистров шифрователя.

По определенным соображениям разработчики ГОСТа решили использовать для инициализации РГПЧ не непосредственно синхропосылку, а результат ее преобразования по циклу 32-З: Ʊ0=Ц32-З(S). Последовательность элементов, вырабатываемых РГПЧ, целиком зависит от его начального заполнения, то есть элементы этой последовательности являются функцией своего номера и начального заполнения РГПЧ: Ʊi=fi0), где fi(X)=f(fi–1(X)), f0(X)=X. С учетом преобразования по алгоритму простой замены добавляется еще

и зависимость от ключа: Гi=Ц32-З гаммы, K – ключ.

Т.е., последовательность элементов гаммы для использования в режиме гаммирования однозначно определяется ключевыми данными и синхропосылкой. Для обратимости процедуры шифрования в процессах за- и расшифрования должна использоваться одна и та же синхропосылка. Из требования уникальности гаммы, невыполнение которого приводит к катастрофическому снижению стойкости шифра, следует, что для шифрования двух различных массивов данных на одном ключе необходимо обеспечить использование различных синхропосылок. Это приводит к необходимости хранить или передавать синхропосылку по каналам связи вместе с зашифрованными данными, хотя в отдельных особых случаях она может быть предопределена или вычисляться особым образом, если исключается шифрование двух массивов на одном ключе.

РГПЧ спроектирован исходя из необходимости выполнения следующих условий:

период повторения последовательности чисел, не должен сильно отличаться от максимально возможного при заданном размере блока значения 264;

соседние значения, вырабатываемые РГПЧ, должны отличаться друг от друга в каждом байте, иначе задача криптоаналитика будет упрощена;

РГПЧ должен быть достаточно просто реализуем как аппаратно, так и программно на наиболее распространенных типах процессоров.

Исходя из перечисленных принципов спроектирован РГПЧ, имеющий характеристики:

в 64-битовом блоке старшая и младшая части обрабатываются независимо друг от друга:

~1

i( i , i ), | i | | i | 32, i 1 f ( i ), i 1 f ( i ) , фактически, существуют два незави-

симых РГПЧ для старшей и младшей частей блока.

рекуррентные соотношения для старшей и младшей частей следующие:

0

( 0

C ) mod 232

 

 

 

i 1

 

i

1

,

где

C1=101010116;

 

 

 

 

1

1

 

32

1) +1,

 

 

i 1

( i

C2 1) mod(2

где

C2=101010416;

период повторения последовательности для младшей части составляет 232, для старшей части 232–1, для всей последовательности период составляет 232(232–1).

1. Определяет исходные данные для основного шага криптопреобразования:

Tо(ш)–массив открытых (зашифрованных) данных произвольного размера, подвергаемый процедуре зашифрования (расшифрования), по ходу процедуры массив подвергается преобразованию порциями по 64 бита;

Sсинхропосылка, 64-битный элемент данных, необходимый для инициализации генератора гаммы;

2.Начальное преобразование синхропосылки, выполняемое для ее «рандомизации», то есть для устранения статистических закономерностей, присутствующих в ней, результат используется как начальное заполнение РГПЧ;

3.Один шаг работы РГПЧ, реализующий его рекуррентный алгоритм. В ходе данного шага старшая (S1) и младшая (S0) части последовательности данных вырабатываются независимо друг от друга;

4.Гаммирование. Очередной 64-битный элемент, выработанный РГПЧ, подвергается процедуре зашифрования по циклу 32–З, результат используется как элемент гаммы для зашифрования (расшифрования) очередного блока открытых (зашифрованных) данных того же размера.

5.Результат работы – зашифрованный (расшифрованный) массив данных. Ниже перечислены особенности гаммирования как режима шифрования.

1.Одинаковые блоки в открытом массиве данных дадут при зашифровании различные блоки шифротекста, что позволит скрыть факт их идентичности.

2.Поскольку наложение гаммы выполняется побитно, шифрование неполного блока данных легко выполнимо как шифрование битов этого неполного блока, для чего используется соответствующие биты блока гаммы. Так, для зашифрования неполного блока в 1 бит можно использовать любой бит из блока гаммы.

3.Синхропосылка, использованная при зашифровании, каким-то образом должна быть передана для использования при расшифровании. Это может быть достигнуто следующими путями:

хранить или передавать синхропосылку вместе с зашифрованным массивом данных, что приведет к увеличению размера массива данных при зашифровании на размер синхропосылки, то есть на 8 байт;

использовать предопределенное значение синхропосылки или вырабатывать ее синхронно источником и приемником по определенному закону;

Режим гаммирования имеет еще одну интересную особенность. В этом режиме биты массива данных шифруются независимо друг от друга. Таким образом, каждый бит шифротекста зависит от соответствую-

щего бита открытого текста и, естественно, порядкового номера бита в массиве: tiш tiо i f (tiо,i) . Т.е. из- менение бита шифротекста на противоположное значение приведет к аналогичному изменению бита откры-

того текста на противоположный: tiш tiш 1 (tiо i ) 1 (tiо 1) i tiо i , где t обозначает инверти- рованное по отношению к t значение бита (0 1, 1 0).

Данное свойство дает злоумышленнику возможность воздействуя на биты шифротекста вносить предсказуемые и даже целенаправленные изменения в соответствующий открытый текст, получаемый после его расшифрования, не обладая при этом секретным ключом. Т.е. «секретность и аутентичность суть различные свойства шифров». Сказанное означает, что существуют криптографические алгоритмы, обеспечивающие определенную секретность зашифрованных данных и при этом никак не защищающие от внесения изменений и наоборот, обеспечивающие аутентичность данных и никак не ограничивающие возможность ознакомления с ними.

Гаммирование с обратной связью.

Отличается от гаммирования только способом выработки элементов гаммы – очередной элемент гаммы вырабатывается как результат преобразования по циклу 32-З предыдущего блока зашифрованных данных, а для зашифрования первого блока массива данных элемент гаммы вырабатывается как результат преобразования по тому же циклу синхропосылки. Этим достигается зацепление блоков – каждый блок шифротекста в этом режиме зависит от соответствующего и всех предыдущих блоков открытого текста. Поэтому данный режим иногда называется гаммированием с зацеплением блоков.

Шифрование в режиме гаммирования с обратной связью обладает теми же особенностями, что и шифрование в режиме обычного гаммирования, за исключением влияния искажений шифротекста на соответствующий открытый текст. Для сравнения запишем функции расшифрования блока для обоих

упомянутых режимов: Tiо Tiш i , гаммирование;

Tiо Tiш Ц32 З (Tiш1 ) , гаммирование с обратной связью;

Если в режиме обычного гаммирования изменения в определенных битах шифротекста влияют только на соответствующие биты открытого текста, то в режиме гаммирования с обратной связью картина несколько сложнее. Как видно из соответствующего уравнения, при расшифровании блока данных в режиме гаммирования с обратной связью, блок открытых данных зависит от соответствующего и предыдущего блоков зашифрованных данных. Поэтому, если внести искажения в зашифрованный блок, то после расшифрования искаженными окажутся два блока открытых данных – соответствующий и следующий за ним, причем искажения в первом случае будут носить тот же характер, что и в режиме гаммирования, а во втором случае – как в режиме простой замены. Другими словами, в соответствующем блоке открытых данных искаженными окажутся те же самые биты, что и в блоке шифрованных данных, а в следующем блоке открытых данных все биты независимо друг от друга с вероятностью 1/2 изменят свои значения.

Имитовставка. это контрольная комбинация, зависящая от открытых данных и секретной ключевой информации. Цель - обнаружение всех случайных или преднамеренных изменений в массиве информации. Для потенциального злоумышленника две следующие задачи практически неразрешимы, если он не владеет ключевой информацией:

вычисление имитовставки для заданного открытого массива информации;

подбор открытых данных под заданную имитовставку;

В качестве имитовставки берется часть блока, полученного на выходе, обычно 32 его младших бита. При выборе размера имитовставки надо принимать во внимание, что вероятность успешного навязывания ложных

данных равна величине 2–|И| на одну попытку подбора. При использовании имитовставки 32 бита вероят-

ность 2–32≈0.23·10–9.

11. Алгоритм RSA.

Первый ассиметричный алгоритм.

Математическое обоснование RSA: Поиск делителей очень большого натурального числа являющегося произведением двух простых чисел, задача крайне трудоёмкая и трудно реализуется при длине ключа не менее 1024 бита.

Алгоритм RSA

Пример

Случайно выбираем два простых (!) очень больших чис-

p=3 , q=11

 

ла (250, 300-десятичных разрядов) числа p и q

n=33, m=20

 

Вычисляем произведения:n=p*q и m=(p-1)*(q-1)

 

 

 

E=7

 

Выбирается небольшое целое нечётное число E, взаи-

 

 

мопростое, не имеющие общих сомножителей с m.

(D*7)mod20=1 D=3

 

 

Пример открытого текста: САВ=312

Расчитываем число D:(D*E)mod m=1 (в остатке1)

A-1, B-2, C-3

 

 

С1=37 mod33=9

 

Отправитель шифрует сообщение, разбивая его на бло-

C2=17 mod33=1

C3=27 mod33=29

ки X длиной не более n. И шифрует по следующей фор-

(9, 1, 29) закрытый

 

муле: Ci= Xi Emod n

6. p1=93 mod33=729mod3=3

Расшифровывание

p2=13 mod33 =1

p3=293 mod33=2

Pi=CiD mod n

(3, 1, 2)

 

7. E, D, n где D-закрытый ключ, E, n-открытый ключ

 

 

Малая теорема Ферма

позволяет определить является ли число простым или составным. Для простого числа P и любого целого числа К, при К< P, справедливо тождество: КP-1 modP=1. Например P=7, K=2, тогда

26 mod7=1

12. PGP. Принцип функционирования. Свойства ключа.

PGP генерирует пару ключей, состоящую из закрытого и открытого ключей. Закрытый ключ, доступен только вам. Но для того, чтобы вы смогли общаться с другими пользователями PGP, вам нужны копии их открытых ключей, а им - копии вашего. Закрытый ключ вы используете для подписи сообщений и файлов, которые отправляете другим, а также для расшифровки сообщений и файлов, отправляемых вам. Открытые ключи других вы используете для шифрования почты, направляемой им, и для верификации их цифровой подписи.

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

Ваш закрытый ключ также используется для наложения подписи на содержимое сообщения или файла. Любой обладающий копией вашего открытого ключа может верифицировать вашу цифровую подпись и удостовериться в том, что содержимое не было изменено во время передачи. Аналогично, если у вас есть копия открытого ключа отправителя, вы можете верифицировать его цифровую подпись или проверить целостность посланного вам сообщения.

Ключи - символическое представление ключа, с именем и адресом его владельца.

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

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

Длина - показывает количество бит, составляющих ключ. В общем, чем длиннее ключ, тем меньше вероятность того, что он будет скомпрометирован. Однако длинные ключи требуют несколько большего времени на шифрование и расшифровку, чем более короткие.

Свойства ключей.

Тип ключа (Key Type) - тип ключа может быть RSA или DSS/DH. Срок действия (Expires) - дата, когда истекает срок годности ключа.

Отпечаток (Fingerprint) - уникальный идентификационный номер, генерируемый при создании пары, и являющийся основным средством контроля подлинности ключа. Математический смысл отпечатка – хэшфункция.

Цифровая подпись - Способ проверки целостности содержимого сообщения и подлинности отправителя. Реализуется с помощью ассиметричных шифров и Хэш функций. Цифровая подпись основывается на обратимости ассиметричных шифров, а так же на взаимосвязи содержимого сообщения, самой подписи и пары ключей. Отправитель вычисляет digest шифрует своим ключом и отправляет вместе с письмом (закрытой частью). Получатель вычисляет digest открытым ключом отправителя, кроме того получатель сам вычисляет digest принятого сообщения и сравнивает с расшифрованным. Если дайджесты совпадают – подпись подлинная, в противном случаелибо подпись поддельная либо сообщение изменено по дороге. Цифровая подпись подтверждает целостность и авторство

20. ! Ролевая политика безопасности. Формальное представление

Идея основана на максимальном приближении логики работы системы к реальному разделению функций персонала в организации.

Применение данного метода подразумевает определение ролей в системе. Понятие роль можно определить как совокупность действий и обязанностей, связанных с определенным видом деятельности. Т.о. вместо того, чтобы указывать все типы доступа для каждого пользователя к каждому объекту, достаточно указать тип доступа к объектам для роли. А пользователям, в свою очередь, указать их роли. Пользователь, "выполняющий" роль, имеет доступ определенный для роли.

Пользователь может выполнять различные роли в разных ситуациях. Одна и та же роль может использоваться несколькими различными пользователями, причем иногда даже одновременно. Основными достоинствами ролевой модели управления доступом являются:

Простота администрирования. права на выполнение определенных операций над объектом прописываются для каждого пользователя или группы пользователей. В ролевой модели разделение понятий роль и пользователь позволяет разбить задачу на две части: определение роли пользователя и определение прав доступа к объекту для роли. Такой подход сильно упрощает процесс администрирования, поскольку при изменении области ответственности пользователя, достаточно убрать у него старые роли и назначить другие соответствующие его новым обязанностям.

Иерархия ролей. Каждая роль наряду со своими собственными привилегиями может наследовать привилегии других ролей.

Принцип наименьшей привилегии. Пользователь может регистрироваться в системе с наименьшей ролью, позволяющей ему выполнять требуемые задачи. Принцип важен для обеспечения достоверности данных в системе. Он требует, чтобы пользователь давали только те из разрешенных ему привилегий, которые ему нужны для выполнения конкретной задачи. Для этого требуется выяснить цели задачи, набор привилегий требуемых для ее выполнения и ограничить привилегии пользователя этим набором. Запрещение привилегий пользователя не требуемых для выполнения текущей задачи позволяет избежать возможности обойти политику безопасности системы.

Разделение обязанностей. распространены ситуации, в которых ряд определенных действий не может выполняться одним человеком во избежание мошенничеств. Примером этому могут служить операции по созданию платежа и его подтверждению. Формально ролевую модель можно изобразить следующим образом:

Модель состоит из следующих сущностей: пользователи, роли и привилегии. пользователь это либо человек, либо программа работающая от имени пользователя. Роль это вид деятельности пользователя в организации, а привилегия это разрешение на определенный доступ к одному или нескольким объектам системы. Пользователь может иметь несколько ролей и несколько пользователей могут принадлежать одной роли. Аналогично несколько

привилегий могут принадлежать одной роли и несколько ролей могут иметь одну и ту же привилегию. Также в этой модели присутствует частично упорядоченное множество - иерархия ролей. На этом множестве задано отношение принадлежности где для ролей x и y, x > y означает что роль x наследует привилегии роли y. Это отношение транзитивно. Сессия относит пользователя к множеству ролей. пользователь активизирует сессию для выполнения некоторой задачи. В этот момент система может определить те роли и привилегии, которые требуются пользователю для выполнения задачи и запретить остальные.

13. Хэш-функции. Определение, свойства, применение.

Под Хэш-функцией понимается получение контрольной характеристики двоичной последовательности основанное на контрольном суммировании и криптографических преобразованиях. Чаще всего Хэш функции является односторонними функциями (Пример с разбитой вазой: т.е. из состояния А легко в В, а из В→А не возможно) Но бывают односторонние функции с лазейкой (можно собрать, если знаешь что)

Хэш функция применяемая к исходным данным в результате даёт значение, состоящее из фиксированного небольшого числа бит, которое иногда называется дайджест(digest) передается с сообщением. Получатель зная какая Хэш функция была использована заново вычисляет digest и если значения полученного по почте и рассчитанного совпадают, значит сообщение по дороге никаким изменениям не подвергалось.

Хэширования удовлетворяют требованиям:

1.Сжатие. Функция отображает произвольное входное сообщение x произвольной конечной длины в Хэш значение: y=h(x) небольшой фиксированной длины. При этом исходное значение является прообразом. 2.Простота вычисления. Для заданной функции h и сообщения x, h(x) вычисляется не выше, чем с полиномиальной сложностью.

3.Стойкость к вычислению прообразов. Не возможность нахождения неизвестного прообраза для любых предварительно заданных Хэш значений, то есть для заданной функции h вычислительно не возможно найти преобразование x при известном хэш значении y = h(x) для любого y.

4.Стойкость к вычислению второго прообраза. Невозможность нахождения любого другого прообраза, который давал бы такое же Хэш значение, как и заданный. То есть для заданной фцнкции h и прообраза x вычислительно не возможно найти другой прообраз x’≠x, для которого выполнялось бы условие: h(x)=h(x’)

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

Все существующие Хэш функции делятся на 2 базовых класса:

1.Безключевые Хэш фунции зависящие только от сообщения.

2.Хэш функции с Секретным ключом зависящие как от сообщения так и от секретного ключа. Однонаправленные – 1-4, бесколлизионные 1-5 Все атаки на Хэш функцию разделяются на две группы:

1) Атаки базирующиеся на уязвимости самого алгоритма прообразов (аналитические атаки). Они основываются на недостатках внутренней структуры Хэш функций.

2) И атаки не зависящие от алгоритмов (прямой грубый перебор)

Оценочные значения вычислительной стойкости к Хэш функциям

Тип функции

Цель атаки

Идеальная стойкость

1.Однонаправленная

Нахождение прообраза. Нахождение

Достигается при значении h=2L, где L-

Хэш функция

втор. прообраза.

длина Хэш значений.

2.Бесколлизионная h

Нахождение любой коллизии.

2L/2

3.Функция выработки

Точное нахождение ключа. Подделка

(K/L)+((2K-1)/ (1-2-L))

кодов аутентификации

сообщений.

K-длина секретного ключа

сообщений (подкласс

 

Вероятность успешной подделки:

ключевых функций)

 

Pm=max(2-K;2-L)

В качестве основных критериев оценки функций хэширования используются стойкость и вычислительная сложность (скорость) вычисления хэш функций.

min современные требования по стойкости соответствуют сложности атаки = 2128. Таким образом для применения в криптосистемах рекомендуется использовать однонаправленные хэш функции, имеющие стойкость к коллизиям не менее 2128, т. е. функция с длиной хэш значения не менее 256 бит.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]