Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Обратное перемешивание

Читайте также:
  1. ПЕРЕМЕШИВАНИЕ. ТИПЫ МЕШАЛОК

Обратное перемешивание практически совпадает с прямым перемешиванием, за исключением того факта, что данные обрабатываются в обратном порядке. То есть, если бы мы совместили прямое и обратное перемешивание так, чтобы их выходы и входы были бы соединены в обратном порядке (D[0] прямого и D[3] обратного, D[1] прямого и D[2] обратного), то не увидели бы результата перемешивания. Как и в прямом смешивание, здесь мы тоже используем одно исходное слово и три целевых. Рассмотрим четыре первых байта исходного слова: b0, b1, b2, b3. Будем использовать b0, b2 как индекс к S-блоку — S1, а b1b3 для S0. Сделаем XOR S1[b0] в первое целевое слово, вычтем S0[b3] из второго слова, вычтем S1[b2] из третьего целевого слов и затем проделаем XOR S0[b1] также к третьему целевому слову. Наконец, мы поворачиваем исходное слово на 24 позиций влево. Для следующего раунда мы вращаем имеющиеся слова так, чтобы нынешнее первое целевое слово стало следующим исходным словом, текущее второе целевое слово стало первым целевым словом, текущее третье целевое слово стало вторым целевым словом, и текущее исходное слово стало третьим целевым словом. Кроме того, перед одним из четырёх «особенных» раундов мы вычитаем одно из целевых слов из исходного слова: перед четвёртым и восьмым раундами мы вычитаем первое целевое слово, перед третьем и седьмым раундами мы вычтем третье целевое слово из исходного.

Псевдокод

1. // Проводим 8 раундов обратного перемешивания

2. Невозможно разобрать выражение(неизвестная ошибка):

3. // дополнительные операции смешивания

4.

5. //вычитаем D[3] из исходного слова

6.

7. // вычитаем D[1] из исходного слова

8. // обращаемся к четырём элементам S-блоков

9.

10.

11.

12.

13. // и вращаем исходное слово влево

14.

15. // вращаем массив D[]

16.

17.

18. // Вычитаем ключевое слово

19.

20.

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

Процесс декодирования обратен процессу кодирвоания. Код дешифрования похож (но не идентичен) на код шифрования.


Дата добавления: 2015-10-26; просмотров: 194 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Криптографическое ядро| Расширение ключа

mybiblioteka.su - 2015-2024 год. (0.006 сек.)