Симметриялық шифр-шифрлау және шифрды ашу үшін бірдей криптографиялық кілт қолданылатын шифрлау әдісі.Асимметриялық шифрлау схемасы ойлап табылғанға дейін жалғыз әдіс симметриялы шифрлау болды.Алгоритм кілті екі жағынан да құпия сақталуы керек. Алгоритм кілтін тараптар хабар алмасу басталғанға дейін таңдайды.
Талаптар Бастапқы хабарламаның барлық статистикалық заңдылықтарын толығымен жоғалту симметриялы шифрдың маңызды талабы болып табылады.Бұған қол жеткізу үшін шифрда "көшкін эффектісі" болуы керек-кірістердің 1 биттік өзгеруімен шифрлау блогының күшті өзгеруі деректер (ең дұрысы, шифрлау блогының 1/2 биттік мәндері өзгеруі керек).
Сондай-ақ, маңызды талап-сызықтықтың болмауы (яғни F(A) XOR F(b) == f(A xor b) шарттары), әйтпесе
дифференциалды криптоанализді шифрға қолдану жеңілдейді.Общая схема
В настоящее время симметричные шифры — это:
блочные шифры. Обрабатывают информацию блоками определённой длины (обычно 64, 128 бит), применяя к блоку ключ в
установленном порядке, как правило, несколькими циклами перемешивания и подстановки, называемыми раундами.
Результатом повторения раундов является лавинный эффект — нарастающая потеря соответствия битов между блоками открытых и зашифрованных данных.
поточные шифры, в которых шифрование проводится над каждым битом либо байтом исходного (открытого) текста с использованием гаммирования.Поточный шифр может быть легко создан на основе блочного (например, ГОСТ 28147-86 в режиме гаммирования), запущенного в специальном режиме.
Большинство симметричных шифров используют сложную комбинацию большого количества подстановок и перестановок. Многие такие шифры исполняются в несколько (иногда до 80) проходов, используя на каждом проходе «ключ прохода». Множество «ключей прохода» для всех проходов называется «расписанием ключей» (key schedule). Как правило, оно создается из ключа выполнением над ним неких операций, в том числе перестановок и подстановок.
Типичным способом построения алгоритмов симметричного шифрования является сеть Фейстеля. Алгоритм строит схему шифрования на основе функции F(D, K), где D — порция данных, размеров вдвое меньше блока шифрования, а K — «ключ прохода» для данного прохода. От функции не требуется обратимость — обратная ей функция может быть неизвестна. Достоинства сети Фейстеля — почти полное совпадение дешифровки с шифрованием (единственное отличие — обратный порядок «ключей прохода» в расписании), что сильно облегчает аппаратную реализацию.
Операция перестановки перемешивает биты сообщения по некоему закону. В аппаратных реализациях она тривиально реализуется как перепутывание проводников. Именно операции перестановки дают возможность достижения «эффекта лавины». Операция перестановки линейна — f(a) xor f(b) == f(a xor b)
Операции подстановки выполняются как замена значения некоей части сообщения (часто в 4, 6 или 8 бит) на стандартное, жестко встроенное в алгоритм иное число путем обращения к константному массиву. Операция подстановки привносит в алгоритм нелинейность.
Зачастую стойкость алгоритма, особенно к дифференциальному криптоанализу, зависит от выбора значений в таблицах подстановки (S-блоках). Как минимум считается нежелательным наличие неподвижных элементов S(x) = x, а также отсутствие влияния какого-то бита входного байта на какой-то бит результата — то есть случаи, когда бит результата одинаков для всех пар входных слов, отличающихся только в данном бите.