Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Описание FEAL



На 10-й представлена блок-схема одного этапа FEAL. В качестве входа процесса шифрования используется 64-битовый блок открытого текста. Сначала блок данных подвергается операции XOR с 64 битами ключа. 3 а-


тем блок данных расщепляется не левую и правую половины. Объединение левой и правой половин с помощью XOR образует новую правую половину. Левая половина и новая правая половина проходят через п этапов (первоначально четыре). На каждом этапе правая половина объединяется с помощью функции f с шестнадцатью битами ключа и с помощью XOR - с левой половиной, создавая новую правую половину. Исходная правая п о-ловина (на начало этапа) становится новой левой половиной. После п этапов (не забывайте, что левая и правая половины не переставляются после n-го этапа) левая половина снова объединяется с помощью XOR с правой половиной, образуя новую правую половину, затем левая и правая соединяются вместе в 64-битовое целое. Блок данных объединяется с помощью XOR с другими 64 битами ключа, и алгоритм завершается.


32 бита

Lo{Re}

Ь {Ri}

Lo{R8}


Открытый текст 64 бита i-

64 бита


(Кв. Кэ, Ко, Ки)

{(Kl2, Kl3, Kl4, Kb)}

—32 бита

*ф Ro{Le}

Ко {К/}

Ro{U}

Ki {/-/}

К {Ke}



L7 {Ri}|


f


— Ki {Ко} RAU)



Rb{L0}



LB{R0}



Ж 64 бита


(K12, K13, K14, Kb)

{(Kb, Kb, Ко, Kii)}



Шифротекст


(V Дешифрирование


Рис. 13-3. Один этап FEAL.

Функция f берет 32 бита данных и 16 битов ключа и смешивает их вместе. Сначала блок данных разбивается на 8-битовые кусочки, которые затем объединяются с помощью XOR и заменяют друг друга. Блок-схема фун к-ции f представлена на 9-й. Две функции S0h Si определяются следующим образом:

S0(a,b) = циклический сдвиг влево на два бита ((а + Ъ) mod 256)

Si(a,b) = циклический сдвиг влево на два бита((а + Ъ + 1) mod 256)

Ъ


f{ab}


So

I


So


Si


bo

Ф-Ф

e<—ф


a0

a

a


16 битов

a 32 бита



Si


a



Рис. 13-4. Функция f.

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

На 8-й представлена блок-схема функции генерации ключа. Сначала 64-битовый ключ делится на две пол о-


вины, к которым применяются операции XOR и функции fh как показано на схеме. На 7-й показана блок-схема функции/*. Два 32-битовых входа разбиваются на 8-битовые блоки, объединяемые и заменяемые в соответс т-вии со схемой. S0 и Si определяются, как показано на рисунке. Затем в алгоритме шифрования/дешифрирования используются 16-битовые блоки ключа.

На микропроцессоре 80286/10 МГц ассемблерная реализация FEAL-32 может шифровать данные со скор о-стью 220 Кбит/с. FEAL-64 может шифровать данные со скоростью 120 Кбит/с [1104].

32 бита Блок ключа J64 бита 32 бита
  А0        
  '     Во
    г- L  
Ко, К, к р      
       
  А, 1      
  '     в,
  А I- L (Т>«  
Кг, К$ Г   kV*  
< ^ | _:'
  А7 1 ' D7\ А, 32 бита в7
KU, Ki5 <  

а0

X


Рис. 13-5. Обработка ключа в FEAL.

а 32 бита

a
a
 
~о<
 
-е«-

«X

Si

So

й 32 бита



So h©<-х2


*ф—►


Si


аи й,. - 8 бит



Y


|32 бита

/ф,й)


Y=S0(X,X2)=Rot2((X+X2) mod 256) Y=Si(Xi,X2)=Rot2((Xi+X2+1) mod 256) Y: выходные 8 битов, хьХ2 (8 битов): входы Rot2(Y): циклический сдвиг влево на 2 бита 8-битовых данных у

Рис. 13-6. Функция/^.





Дата публикования: 2014-11-04; Прочитано: 253 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...