77
есептеуіштен тұрады. Екі есептеуішті (екеуі де 4-битты)
i және
j деп атайық. Барлық
есептер модулі 2
n
бойынша жүргізіледі.
Массив
S-бокс деп аталатын ауыстыру кесте ретінде қолданылады, оны әрі қарай
S
деп белгілейміз. Әрбір уақытта
S кестесі барлық мүмкін
n-битты араластырылған түрдегі
сандардан (біздің жағдайда 4-битты) тұрады. Кестедегі мәндердің нақты орын ауыстыруы
кілтпен анықталады. Кестедегі әрбір элемент 0 ден 15-ге дейін мән алатындықтан, оны екі
түрлі түсіндіруге болады:
не сан ретінде, не кестедегі басқа элементің нөмірі ретінде.
RC4 алгоритмы екі кезеңнен тұрады. Бірінші, дайындау кезеңде орын ауыстыру
S
кесте инициализацияланады. Екінші, негізгі кезеңде псевдокездейсоқ сандар есептеледі.
S кестенің инициализациялауын қарастырайық. Алдымен ол рет-ретімен 0 ден 15-ге
дейін сандармен толтырылады. Кілт 4-битты сөздер
тізбегі ретінде беріледі,
олармен басқа
К массивы толтырылады, оның мөлшері
S массивтың мөлшеріне тең. Егер кілт қысқа
болып қалса, онда ол қажетті рет қайталанады. Сосын келесі амалдар орындалады
(алгоритм 1):
1.
j = 0;
i = 0;
2.
j = (
j +
S
i
+
K
i
) mod 16;
3.
S
i
мен
S
j
орынмен
ауыстыру;
4.
i =
i + 1;
5. егер
i < 16, онда п.2 қайтып келу
Осы алгоритмды орындау нәтижесінде орын ауыстыру
S кестенің бастапқы
толтырылуы жасалынады.
S кестені дайындағаннан кейін, кездейсоқ
n-битты сөздердің генерациялауын
бастауға болады. Ол үшін
i мен
j есептеуіштерге бастапқы мән 0 беріледі. Сосын әрбір
жаңа
z
i
мәнің алу үшін келесі амалдар орындалады (алгоритм 2):
i = (
i + 1) mod 16;
j = (
j +
S
i
) mod 16;
S
i
мен
S
j
орынмен ауыстыру;
a = (
S
i
+
S
j
) mod 16;
z
i
=
S
a
.
Алынған 4-битты
z
i
мәні келесі кіру деректер ағынның 4-битты блокты шифрлау
үшін кілт ретінде пайдалану мүмкін.
Мысалы, құпиялы кілт алты 4-битты мәннен тұрсын (оларды ондық түрде
көрсетейік): 1, 2, 3, 4, 5, 6. RC4 алгоритмы бойынша сандар тізбегін генерациялап
көрейік.
S кестені рет-ретімен 0 ден 15-ге дейін сандармен толтырайық.
Элемент нөмірі 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Мәні
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Сосын
К кестені дайындаймыз, оған кілтті қажетті рет жазамыз:
Элемент нөмірі 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Мәні
1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4
Сосын
S кестенің ішіндегісін араластырамыз. Ол үшін алгоритм 1 пайдаланамыз.
Орындау процесін трассировка кестесі түрінде көрсетеміз (кесте 8.2), онда барлық
амалдарды белгілейміз. Есептеуді орындағанда еске сақтау керек, барлық қосу
операциялар модулі 16 бойынша жүргізіледі.
Кесте 8.2. RC4 алгоритмның дайындау кезеңі (орын ауыстыру кестені инициализациялау)
Алг.
пунктінің
Орындалатын амал (mod 16 бойынша)
i жаңа
мәні
j жаңа
мәні