
- •Билет 8
- •2. Асимметричные криптосистемы.
- •Билет 9
- •2. Сжатие данных.
- •Выработка имитовставки
- •2. Коды Соломона.
- •2. Базовые циклы алгоритма шифрования госТа 28147-89.
- •1. Формула Шеннона.
- •Кодирование Хаффмана
- •2. Основной шаг криптопреобразования.
- •1. Кодеры и декодеры.
- •2. Логика построения шифра.
Выработка имитовставки
Имитовставка – это контрольная комбинация, зависящая от открытых данных и секретной ключевой информации. Целью использования имитовставки является обнаружение всех случайных или преднамеренных изменений в массиве данных. Для потенциального злоумышленника две следующие задачи практически неразрешимы, если он не владеет ключевой информацией: вычисление имитовставки для заданного открытого массива данных; подбор открытых данных под заданную имитовставку. Алгоритм выработки имитовставки:
S = 0.
Для каждого 64-битного блока данных из массива данных: S = F(S xor Ti), где Ti - блок данных, F - базовый цикл выработки имитовставки (16-З), xor - операция исключающего или.
S - полученная имитовставка.
В качестве имитовставки можно использовать лишь часть полученного числа S, но следует помнить, что вероятность успешного навязывания ложных данных равна величине 2-L, где L - длина используемой части числа в битах. Обычно используются младшие 32 бита числа S.
2. Коды Соломона.
Коды Рида-Соломона строятся сначала как коды над некоторым полем GF(q), где q обычно есть степень числа 2, q = 2p. Далее элементы поля GF(2p) представляются как двоичные векторы длины p. Таким образом, код Рида-Соломона хорошо приспособлен для исправления пачек ошибок длины p.
Пусть a - примитивный элемент поля GF(q), q = 2p. Рассмотрим элементы a, ..., a2t и многочлены (x - a), ..., (x - a2t) как многочлены с коэффициентами из поля GF(q). Тогда, согласно результатам предыдущих параграфов, произведение g(x) = (x - a)× ...×(x - a2t) можно выбрать в качестве порождающего многочлена для кода, слова которого имеют длину n = q - 1 и состоят из элементов поля GF(q). Данный код является циклическим (n, n-2t)-кодом, т. е. имеет 2t проверочных символов (из поля GF(q)). Согласно теореме 8.1, данный код исправляет любую комбинацию из t или менее ошибок.
Представим теперь каждый символ из поля GF(q), q = 2p, двоичным вектором длины p. Получим двоичный код длины pn, который имеет 2tpпроверочных символов и исправляет любую комбинацию из tp или менее ошибок, если эти ошибки произошли только в двоичных наборах, которые заменяют t символов из поля GF(q).
БИЛЕТ 11
Псевдотроичный метод кодирования.
Троичный код — это способ представления данных в виде комбинации трёх знаков, обычно обозначаемых цифрами 0, 1 и 2.
Троичный код может быть непозиционным и позиционным.
Из комбинаторики известно,
что, в случае непозиционного
кодирования,
количество комбинаций (кодов) является
количеством сочетаний
с повторениями из
по
и
равно биномиальному
коэффициенту:
,
[возможных состояний (кодов)],
т.е.
описывается параболой:
,
[возможных состояний (кодов)],
где
— количество троичных разрядов (троров, тритов).
Например, в непозиционной системе кодирования, в одном 3-х тритном коде (n=3) количество возможных состояний (кодов) равно:
,
[возможных состояний (кодов)].
В случае позиционного кодирования, число комбинаций (кодов) n-разрядного троичного кода равно числу размещений с повторениями:
,
где
—
число
кодов,
— число разрядов троичного кода.
Используя два троичных разряда и позиционное кодирование можно закодировать какие-либо объекты девятью различными комбинациями: 00 01 02 10 11 12 20 21 22 (при непозиционном кодировании комбинаций - 6, т.к. три пары 01 и 10, 02 и 20, 12 и 21 считаются как три комбинации); используя три троичных разряда — двадцатью семью: 000 001 002 010 011 012 020 021 022 100 101 102 110 111 112 120 121 122 200 201 202 210 211 212 220 221 222 (при непозиционном кодировании комбинаций - 10), и так далее.
При увеличении разрядности позиционного троичного кода на 1, количество различных комбинаций в позиционном троичном коде утраивается.
Троичные коды являются комбинациями трёх элементов и не являются троичной системой счисления, но используются в том или ином варианте троичных систем счисления как основа. При этом они могут использоваться для кодирования чисел в системах счисления с любым основанием. Однако, для системы счисления с основанием два (то есть, для двоичной) они избыточны и могут быть задействованы лишь частично.
При кодировании алфавитно-цифровых символов (знаков) троичному коду не приписываются весовые коэффициенты, как это делается в системах счисления, в которых троичный код используется для представления чисел, а используется только порядковый номер кода из множества размещений с повторениями.