Интернет магазин китайских планшетных компьютеров |
||||||||||||||||||||||||||||||||||
Компьютеры - ECHO - COMPRESS51209 июня 2011Оглавление: 1. ECHO 2. Обозначения 3. COMPRESS512 4. COMPRESS1024 Дополненное сообщение M' делится на t блоков M1...Mt, каждый длиной MSIZE = 1536 бит. Эти блоки друг за другом подаются на вход функции COMPRESS512, при этом в итоге вычисляется t + 1 значений переменной цепочки: Каждый блок Mi можно представить в виде двенадцати 128-битовых слов: Переменная цепочки Vi − 1 аналогичным образом записывается в виде последовательности из 4 слов: Дальнейшие операции проводятся над матрицей состояния S из 4 строк и 4 столбцов:
В начале i-ой итерации вычисления значения COMPRESS512 Vi и Mi упаковываются в матрицу S следующим образом:
Вычисление COMPRESS512 происходит в 8 раундов, называемых в ECHO BIG.ROUND. Каждый такой раунд состоит из последовательного применения 3 функций: BIG.SUBWORDS BIG.SHIFTROWS BIG.MIXCOLUMNS BIG.SUBWORDSBIG.SUBWORDS это 2 AES раунда. Обозначим действие одного раунда AES с ключом k на 128-битное слово w как w' = AES Здесь AES состоит из операций SubBytes, ShiftRows, MixColumns и AddRoundKey. Ключи k для вычисления w' создаются из параметров SALT и κ. Последний представляет собой внутренний счетчик, который инициализируется значением Ci и увеличивается во время вычисления COMPRESS512. Важно заметить, что, если в последнем блоке Mt биты исходного сообщения отсутствуют, то Ct полагается равным 0. Значения ключей для двух раундов AES получаются следующим образом: если счетчик Ci выбран 64-битным, и для 128-битного счетчика. Операцию BIG.SUBWORDS можно описать равенствами w0' = AES,k2), увеличить κ на 1 по модулю 2 w1' = AES,k2), увеличить κ на 1 по модулю 2 ... w15' = AES,k2), увеличить κ на 1 по модулю 2 Счетчик κ увеличивается на протяжении всех восьми раундов, то есть, например, в начале второго раунда κ = Ci + 16. BIG.SHIFTROWSОперация BIG.SHIFTROWS проводит циклический сдвиг влево строк матрицы состояния S: . Более наглядно:
BIG.MIXCOLUMNSBIG.MIXCOLUMNS состоит из последовательного применения операции MixColumns, определенной в AES. Рассмотрим столбцы матрицы S, состоящие из 128-битных слов , где . Элементы столбцов можно представить в виде байтовых строк: Тогда BIG.MIXCOLUMNS вычисляется как Последняя формула представляет собой операцию MixColumns, в которой сложение и умножение определены в поле GF по модулю многочлена x + x + x + x + 1. Окончание вычисления COMPRESS512Функцию COMPRESS512 можно описать, используя определенные выше операции: for i := 1 to 8 do
Операция BIG.FINAL вычисляет значение переменной цепочки Vi, используя полученную в результате применения 8 раундов матрицу состояния S, блок сообщения Mi и предыдущее значение переменной цепочки Vi − 1:
Здесь за w0,...,w15 обозначены элементы матрицы S, операция исключающего ИЛИ. Конечное значение хеш-функцииКонечное значение переменной цепочки это строка из 512 бит: Результатом хеширования с битовой длиной HSIZE, принимающей значения от 128 до 256, являются HSIZE крайних левых бит переменной цепочки. Например, для значения хеш-функции h с длиной HSIZE = 256: Просмотров: 3490
|