Магазин радиожучков

вебмастерам $$$
проектирование,  перепланировка,  согласование  в киеве
для предприятий и частных лиц

 Любые виды проектных, дизайнерских и строительных работ в Украине. Посредникам % 

РЕКЛАМА НА KIEV-SECURITY - ЭТО 230.000 ЕЕ ПОКАЗОВ В МЕСЯЦ
sale

подписаться на новости  forum  proxy  статьи  библиотека  softice  free_юр.консультация  hard  spy shop  chat
рекламодателям  фирмы/add  sms send  расшифровка штрих-кодов  tv-программа  резюме/вакансии  links/add

http://kiev-security.org.ua

Содержание

Алгоритм ГОСТ 28147-89 - Режим простой замены

Зашифрование данных

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

Структурная схема зашифрования в режиме простой замены

Структурная схема зашифрования в режиме простой замены

Открытые данные, подлежащие зашифрованию, разбивают на блоки по 64 бита каждый. Ввод любого блока Tо = (a1(0), a2(0),..., a31(0), a32(0), b1(0), b2(0),.., b32(0) двоичной информации в накопители N1 и N2 производятся так, что значение a1(0) вводится в 1-й разряд N1, значение a2(0) вводится во 2-й разряд накопителя и т.д., значение a32(0) вводится в 32-й разряд N1: значение b1(0) вводится в 1-й разряд N2, значение b2(0) вводится во 2-й разряд накопителя и т.д., значение b32(0) вводится в 32-й разряд N2. В результате получаем состояние (a32(0), a31(0),..., a2(0), a1(0)) накопителя N1 и состояние (b32(0), b31(0),..., b2(0), b1(0)) накопителя N2.
В КЗУ вводится 256 бит ключа. Содержимое восьми 32-разрядных накопителей X0, X1,...., X7 имеет вид:

X0 = (W32, W31,..., W2, W1)
X1 = (W64, W63,..., W34, W33)
. . .
X7 = (W256, W255,..., W226, W225)

Алгоритм зашифрования 64-разрядного блока открытых данных в режиме простой замены состоит из 32-х циклов.
В первом цикле начальное заполнение накопителя N1 суммируется по модулю 232 в сумматоре СМ1 с заполнением накопителя X0, при этом заполнение накопителя N1 сохраняется.
Результат суммирования преобразуется в блоке подстановке K и полученный вектор поступает на вход регистра R, где циклически сдвигается на одиннадцать шагов в сторону старших разрядов. Результат сдвига суммируется поразрядно по модулю 2 в сумматоре СМ2 с 32-разрядным заполнением накопителя N2. Полученный в СМ2 результат записывается в N1, при этом старое заполнение N1 переписывается в N2. Первый цикл заканчивается.
Последующие циклы осуществляются аналогично, при этом во 2-м цикле из КЗУ считывается заполнение X1, в 3-ем цикле из КЗУ считывается заполнение X2 и т.д., в 8-ом цикле из КЗУ считывается заполнение X7. В циклах с 9-го по 16-ый, а также в циклах с 17-го по 24-ый заполнения из КЗУ считываются в том же порядке.
В последних восьми циклах с 25-ый по 32-ой порядок считывания заполнений КЗУ обратный.
В 32-ом цикле результат из сумматора СМ2 вводится в накопитель N2, а в накопителе N1 сохраняется старое заполнение.
Полученные после 32-го цикла зашифрования заполнения накопителей N1 и N2 являются блоком зашифрованных данных, соответствующим блоку открытых данных.
64-разрядный блок зашифрованных данных Тш выводится из накопителей N1 и N2 в следующем порядке: из 1-го, 2-го,..., 32-го разряда накопителя N1, затем из 1-го, 2-го,..., 32-го разрядов накопителя N2.
Остальные блоки открытых данных в режиме простой замены зашифровываются аналогично.

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

Криптосхема, реализующая алгоритм расшифрования в режиме простой замены имеет тот же вид, что и при зашифровании. В КЗУ вводятся 256 бит того же ключа, на котором осуществлялось зашифрование открытых данных.
Зашифрованные данные разбиваются на блоки по 64 бита каждый. Ввод любого блока Tш = (a1(32), a2(32),..., a31(32), a32(32), b1(32), b2(32),.., b32(32) двоичной информации в накопители N1 и N2 производятся так, что значение a1(32) вводится в 1-й разряд N1, значение a2(32) вводится во 2-й разряд накопителя и т.д., значение a32(32) вводится в 32-й разряд N1: значение b1(32) вводится в 1-й разряд N2, значение b2(32) вводится во 2-й разряд накопителя и т.д., значение b32(32) вводится в 32-й разряд N2.
Расшифрование осуществляется по тому же алгоритму, что и зашифрование открытых данных, с тем изменением, что заполнения накопителей X0, X1,...,X7 считываются из КЗУ в циклах расшифрования в следующем порядке:

X0, X1, X2, X3, X4, X5, X6, X7, X7, X6, X5, X4, X3, X2,. X1, X0
X7, X6, X5, X4, X3, X2,. X1, X0, X7, X6, X5, X4, X3, X2,. X1, X0

Полученные после 32-х циклов работы заполнения накопителей N1 и N2 составляют блок открытых данных.
Аналогично расшифровываются остальные блоки зашифрованных данных.
Алгоритм зашифрования в режиме простой замены 64-битового блока То обозначается через A, т.е.:

A (Tо) = A (a(0), b(0))) = (a(32), b(32)))= Tш

Содержание

HOME


Если у вас есть сайт или домашняя страничка - поддержите пожайлуста наш ресурс, поставьте себе кнопочку, скопировав этот код:

<a href="http://kiev-security.org.ua" target="_blank"><img src="http://kiev-security.org.ua/88x31.gif" width="88" height="31" border="0" alt="Самый большой объем в сети онлайн инф-ции по безопасности на rus"></a>

Кнопочка будет выглядеть вот так (1,516 байт):

Самый большой объем в сети онлайн инф-ции по безопасности на rus
Идея проекта(C)Anton Morozov, Kiev, Ukraine, 1999-2007,
Hosted by Register.UA