Jump to content

LSH (хэш-функция)

LSH — это криптографическая хэш-функция, разработанная в 2014 году Южной Кореей для обеспечения целостности программных сред общего назначения, таких как ПК и интеллектуальные устройства . [1] LSH — один из криптографических алгоритмов, одобренных Корейской программой проверки криптографических модулей (KCMVP).И это национальный стандарт Южной Кореи (KS X 3262).

Спецификация [ править ]

Общая структура хеш-функции LSH показана на следующем рисунке.

Общая структура LSH

Хэш-функция LSH имеет структуру Меркла-Дамгорда с широким каналом и заполнением одним нулем.Процесс хеширования сообщений LSH состоит из следующих трех этапов.

  1. Инициализация :
    • Заполнение заданной битовой строки сообщением одним нулем.
    • Преобразование в блоки сообщений массива из 32 слов из сообщения дополненной битовой строки.
    • Инициализация связывающей переменной вектором инициализации.
  2. Сжатие :
    • Обновление переменных цепочки путем итерации функции сжатия с блоками сообщений.
  3. Завершение :
    • Создание -битное хеш-значение из последней переменной цепочки.
  • функция Хэш-функция LSH
  • ввод: сообщение битовой строки
  • вывод: хэш-значение
  • процедура

Заполнение одним нулем

Генерация блоки сообщений , где из дополненной битовой строки

для к делать

конец для

возвращаться

Характеристики хеш-функции LSH следующие.

Спецификации хэш-функции LSH
Алгоритм Размер дайджеста в битах ( ) Количество ступенчатых функций ( ) Объединение размера переменной в битах Размер блока сообщения в битах Размер слова в битах ( )
ЛШ-256-224 224 26 512 1024 32
ЛШ-256-256 256
ЛШ-512-224 224 28 1024 2048 64
ЛШ-512-256 256
ЛШ-512-384 384
ЛШ-512-512 512

Инициализация [ править ]

Позволять быть заданным сообщением битовой строки.данный дополняется одними нулями, т. е. бит «1» добавляется в конец , и биты '0' добавляются до тех пор, пока длина дополненного сообщения не станет , где и — наименьшее целое число, не меньшее .

Позволять быть дополненным одним нолем -битовая строка .Затем рассматривается как -байтовый массив , где для всех . -байтовый массив превращается в -массив слов следующее.

Из массива слов , мы определяем Блоки сообщений массива из 32 слов следующее.

Переменная цепочки массивов из 16 слов инициализируется вектором инициализации .

Вектор инициализации заключается в следующем.В следующих таблицах все значения выражены в шестнадцатеричной форме.

Вектор инициализации ЛШ-256-224
068608D3 62Д8Ф7А7 D76652AB 4C600A43 БДК40АА8 1ECA0B68 DA1A89BE 3147D354
707EB4F9 F65B3862 6B0B2ABE 56B8EC0A CF237286 EE0D1727 33636595 8BB8D05F
Вектор инициализации ЛШ-256-256
46А10Ф1Ф FDDCE486 Б41443А8 198E6B9D 3304388D B0F5A3C7 B36061C4 7ADBD553
105Д5378 2Ф74ДЕ54 5C2F2D95 F2553FBE 8051357А 138668C8 47АА4484 E01AFB41
Вектор инициализации ЛШ-512-224
0C401E9FE8813A55 4A5F446268FD3D35 FF13E452334F612A F8227661037E354A
A5F223723C9CA29D 95D965A11AED3979 01E23835B9AB02CC 52D49CBAD5B30616
9E5C2027773F4ED3 66A5C8801925B701 22BBC85B4C6779D9 C13171A42C559C23
31E2B67D25BE3813 D522C4DEED8E4D83 A79F5509B43FBAFE E00D2CD88B4B6C6A
Вектор инициализации ЛШ-512-256
6DC57C33DF989423 D8EA7F6E8342C199 76DF8356F8603AC4 40F1B44DE838223A
39FFE7CFC31484CD 39C4326CC5281548 8А2ФФ85А346045Д8 FF202AA46DBDD61E
CF785B3CD5FCDB8B 1F0323B64A8150BF FF75D972F29EA355 2E567F30BF1CA9E1
B596875BF8FF6DBA FCCA39B089EF4615 ECFF4017D020B4B6 7E77384C772ED802
Вектор инициализации ЛШ-512-384
53156A66292808F6 B2C4F362B204C2BC B84B7213BFA05C4E 976CEB7C1B299F73
DF0CC63C0570AE97 DA4441BAA486CE3F 6559F5D9B5F2ACC2 22DACF19B4B52A16
BBCDACEFDE80953A C9891A2879725B3E 7C9FE6330237E440 A30BA550553F7431
BB08043FB34E3E30 A0DEC48D54618EAD 150317267464BC57 32D1501FDE63DC93
Вектор инициализации ЛШ-512-512
АДД50F3C7F07094E E3F3CEE8F9418A4F B527ECDE5B3D0AE9 2EF6DEC68076F501
8CB994CAE5ACA216 FBB9EAE4BBA48CC7 650А526174725ФЭА 1F9A61A73F8D8085
B6607378173B539B 1BC99853B0C0B9ED DF727FC19B182D47 ДБЕФ360CF893A457
4981F5E570147E80 D00C4490CA7D3E30 5D73940C0E4AE1EC 894085E2EDB2D819

Сжатие [ править ]

На этом этапе Блоки сообщений массива из 32 слов , которые генерируются из сообщения на этапе инициализации сжимаются путем итерации функций сжатия.Функция сжатия имеет два входа; тот -я переменная цепочки из 16 слов и -ый блок сообщения из 32 слов .И он возвращает -я переменная цепочки из 16 слов .Здесь и далее обозначает множество всех -массивы слов для .

В функции сжатия используются следующие четыре функции:

  • Функция расширения сообщений
  • Функция добавления сообщения
  • Функция смешивания
  • Функция перестановки слов

Общая структура функции сжатия показана на следующем рисунке.

Функция сжатия LSH

В функции сжатия функция расширения сообщения генерирует Подсообщения массива из 16 слов из данного .Позволять быть временным массивом из 16 слов, установленным в -я переменная цепочки . -я ступенчатая функция наличие двух входов и обновления , то есть, .Все пошаговые функции выполняются по порядку. .Тогда еще один операция по продолжается, и -я переменная цепочки установлено на .Подробно процесс функции сжатия выглядит следующим образом.

  • функция Функция сжатия
  • : ввод -я переменная цепочки и -ый блок сообщений
  • : вывод -я переменная цепочки
  • процедура

для к делать

конец для

возвращаться

Здесь -я ступенчатая функция заключается в следующем.

На следующем рисунке показано -я ступенчатая функция функции сжатия.

The -я ступенчатая функция

Функция расширения сообщений MsgExp [ править ]

Позволять быть -th блок сообщения массива из 32 слов.Функция расширения сообщения генерирует Подсообщения массива из 16 слов из блока сообщений .Первые два подсообщения и определяются следующим образом.

Следующие подсообщения генерируются следующим образом.

Здесь перестановка закончилась определяется следующим образом.

Перестановка
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
3 2 0 1 7 4 5 6 11 10 8 9 15 12 13 14

Функция добавления сообщений MsgAdd [ править ]

Для двух массивов из 16 слов и , функция добавления сообщений определяется следующим образом.

Функция микширования Микс [ править ]

The -я функция смешивания обновляет массив из 16 слов смешивая каждую пару из двух слов; и для .Для , функция смешивания происходит следующим образом.

Здесь представляет собой функцию смешивания двух слов.Позволять и быть словами.Функция смешивания двух слов определяется следующим образом.

  • функция Функция смешивания двух слов
  • ввод: Слова и
  • вывод: Слова и
  • процедура

; ;

;

; ;

; ;

возвращаться , ;

Функция смешивания двух слов показано на следующем рисунке.

Функция смешивания двух слов

Количество оборотов битов , , используется в показаны в следующей таблице.

Величина ротации битов , , и
32 даже 29 1 0 8 16 24 24 16 8 0
странный 5 17
64 даже 23 59 0 16 32 48 8 24 40 56
странный 7 3

The -я константа массива из 8 слов используется в для определяется следующим образом.Начальная константа массива из 8 слов определяется в следующей таблице.Для , -я константа генерируется для .

Начальная константа массива из 8 слов
917caf90 97884283c938982a
6c1b10a2 ba1fca93533e2355
6f352943 c519a2e87aeb1c03
cf778243 9a0fc95462af17b1
2ceb7472 fc3dda8ab019a82b
29e96ff2 02825d079a895407
8a9ba428 79f2d0a7ee06a6f7
2eeb2642 d76d15eed9fdf5fe

Функция перестановки слов WordPerm [ править ]

Позволять быть массивом из 16 слов.Функция перестановки слов определяется следующим образом.

Здесь перестановка закончилась определяется следующей таблицей.

Перестановка
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
6 4 5 7 12 15 14 13 2 0 1 3 8 11 10 9

Завершение [ править ]

Функция финализации возвращает -битное хэш-значение из последней переменной цепочки .Когда представляет собой переменную из 8 слов и это -байтовая переменная, функция финализации выполняет следующую процедуру.

Здесь, обозначает , подбитовая строка слова для обозначает , суббитовая строка -битовая строка для .

Безопасность [ править ]

LSH защищен от известных на данный момент атак на хэш-функции.LSH устойчив к столкновениям и устойчивость к прообразу и устойчивость к второму прообразу для в модели идеального шифра, где — это количество запросов к структуре LSH. [1] LSH-256 защищен от всех существующих атак хеш-функций, когда количество шагов составляет 13 или более, а LSH-512 защищен, если количество шагов составляет 14 или более.Обратите внимание, что шаги, которые работают как запас безопасности, составляют 50% функции сжатия. [1]

Производительность [ править ]

LSH превосходит SHA-2/3 на различных программных платформах.В следующей таблице показаны показатели скорости хеширования сообщений LSH размером 1 МБ на нескольких платформах.

Скорость хеширования сообщений LSH размером 1 МБ (циклов/байт) [1]
Платформа П1 [а] П2 [б] П3 [с] П4 [д] П5 [и] П6 [ф] Р7 [г] Р8 [час]
ЛШ-256- 3.60 3.86 5.26 3.89 11.17 15.03 15.28 14.84
ЛШ-512- 2.39 5.04 7.76 5.52 8.94 18.76 19.00 18.10
  1. ^ Intel Core i7-4770K @ 3,5 ГГц (Haswell), Ubuntu 12.04 64-разрядная версия, GCC 4.8.1 с «-m64 -mavx2 -O3»
  2. ^ Intel Core i7-2600K @ 3,40 ГГц (Sandy Bridge), Ubuntu 12.04 64-разрядная версия, GCC 4.8.1 с «-m64 -msse4 -O3»
  3. ^ Intel Core 2 Quad Q9550 @ 2,83 ГГц (Йоркфилд), Windows 7, 32-разрядная версия, Visual Studio 2012
  4. ^ AMD FX-8350 @ 4 ГГц (Piledriver), Ubuntu 12.04 64-разрядная версия, GCC 4.8.1 с «-m64 -mxop -O3»
  5. ^ Samsung Exynos 5250 ARM Cortex-A15 @ 1,7 ГГц, двухъядерный (Huins ACHRO 5250), Android 4.1.1
  6. ^ Четырехъядерный процессор Qualcomm Snapdragon 800 Krait 400 @ 2,26 ГГц (LG G2), Android 4.4.2
  7. ^ Четырехъядерный процессор Qualcomm Snapdragon 800 Krait 400 @ 2,3 ГГц (Samsung Galaxy S4), Android 4.2.2
  8. ^ Двухъядерный процессор Qualcomm Snapdragon 400 Krait 300 @ 1,7 ГГц (Samsung Galaxy S4 mini), Android 4.2.2

В следующей таблице приведено сравнение платформы на базе Haswell, LSH измерен на четырехъядерной платформе Intel Core i7-4770k с частотой 3,5 ГГц, а остальные измерены на четырехъядерной платформе Intel Core i5-4570S с частотой 2,9 ГГц.

Тест скорости финалистов LSH, SHA-2 и SHA-3 на платформе на базе процессора Haswell (циклов/байт) [1]
Алгоритм Размер сообщения в байтах
длинный 4,096 1,536 576 64 8
ЛШ-256-256 3.60 3.71 3.90 4.08 8.19 65.37
Моток-512-256 5.01 5.58 5.86 6.49 13.12 104.50
Блейк-256 6.61 7.63 7.87 9.05 16.58 72.50
Грёстль-256 9.48 10.68 12.18 13.71 37.94 227.50
Кечак-256 10.56 10.52 9.90 11.99 23.38 187.50
ША-256 10.82 11.91 12.26 13.51 24.88 106.62
JH-256 14.70 15.50 15.94 17.06 31.94 257.00
ЛШ-512-512 2.39 2.54 2.79 3.31 10.81 85.62
Моток-512-512 4.67 5.51 5.80 6.44 13.59 108.25
Блейк-512 4.96 6.17 6.82 7.38 14.81 116.50
ША-512 7.65 8.24 8.69 9.03 17.22 138.25
Грёстль-512 12.78 15.44 17.30 17.99 51.72 417.38
JH-512 14.25 15.66 16.14 17.34 32.69 261.00
Кечак-512 16.36 17.86 18.46 20.35 21.56 171.88

В следующей таблице измерены результаты на двухъядерной платформе Samsung Exynos 5250 ARM Cortex-A15 с частотой 1,7 ГГц.

Тест скорости финалистов LSH, SHA-2 и SHA-3 на платформе на базе процессора Exynos 5250 ARM Cortex-A15 (циклов/байт) [1]
Алгоритм Размер сообщения в байтах
длинный 4,096 1,536 576 64 8
ЛШ-256-256 11.17 11.53 12.16 12.63 22.42 192.68
Моток-512-256 15.64 16.72 18.33 22.68 75.75 609.25
Блейк-256 17.94 19.11 20.88 25.44 83.94 542.38
ША-256 19.91 21.14 23.03 28.13 90.89 578.50
JH-256 34.66 36.06 38.10 43.51 113.92 924.12
Кечак-256 36.03 38.01 40.54 48.13 125.00 1000.62
Грёстль-256 40.70 42.76 46.03 54.94 167.52 1020.62
ЛШ-512-512 8.94 9.56 10.55 12.28 38.82 307.98
Блейк-512 13.46 14.82 16.88 20.98 77.53 623.62
Моток-512-512 15.61 16.73 18.35 22.56 75.59 612.88
JH-512 34.88 36.26 38.36 44.01 116.41 939.38
ША-512 44.13 46.41 49.97 54.55 135.59 1088.38
Кечак-512 63.31 64.59 67.85 77.21 121.28 968.00
Грёстль-512 131.35 138.49 150.15 166.54 446.53 3518.00

Тестовые векторы [ править ]

Тестовые векторы для LSH для каждой длины дайджеста следующие.Все значения выражаются в шестнадцатеричной форме.

LSH-256-224("abc") = F7 C5 3B A4 03 4E 70 8E 74 FB A4 2E 55 99 7C A5 12 6B B7 62 36 88 F8 53 42 F7 37 32

LSH-256-256("abc") = 5F BF 36 5D AE A5 44 6A 70 53 C5 2B 57 40 4D 77 A0 7A 5F 48 A1 F7 C1 96 3A 08 98 BA 1B 71 47 41

LSH-512-224("abc") = D1 68 32 34 51 3E C5 69 83 94 57 1E AD 12 8A 8C D5 37 3E 97 66 1B A2 0D CF 89 E4 89

LSH-512-256("abc") = CD 89 23 10 53 26 02 33 2B 61 3F 1E C1 1A 69 62 FC A6 1E A0 9E CF FC D4 BC F7 58 58 D8 02 ED EC

LSH-512-384("abc") = 5F 34 4E FA A0 E4 3C CD 2E 5E 19 4D 60 39 79 4B 4F B4 31 F1 0F B4 B6 5F D4 5E 9D A4 EC DE 0F 27 B6 6E 8D BD FA 47 25 2E 0D 0B 74 1B FD 91 F9 FE

LSH-512-512("abc") = A3 D9 3C FE 60 DC 1A AC DD 3B D4 BE F0 A6 98 53 81 A3 96 C7 D4 9D 9F D1 77 79 56 97 C3 53 52 08 B5 C5 72 24 BE F2 10 84 D4 20 83 E9 5A 4B D8 EB 33 E8 69 81 2B 65 03 1C 42 88 19 A1 E7 CE 59 6D

Реализации [ править ]

LSH бесплатен для любого использования: публичного или частного, коммерческого или некоммерческого.Исходный код для распространения LSH, реализованный на C, Java и Python, можно загрузить с веб-страницы активации использования криптографии KISA. [2]

КЦМВП [ править ]

LSH — один из криптографических алгоритмов, одобренных Корейской программой проверки криптографических модулей (KCMVP). [3]

Стандартизация [ править ]

LSH включен в следующий стандарт.

  • KS X 3262, Хэш-функция LSH (на корейском языке) [4]

Ссылки [ править ]

  1. ^ Jump up to: Перейти обратно: а б с д и ж Ким, Донг-Чан; Хонг, Дыкджо; Ли, Юнг-Гын; Ким, Ву-Хван; Квон, Дэсон (2015). «LSH: новое семейство быстрых и безопасных хэш-функций» . Информационная безопасность и криптология — ICISC 2014 . Конспекты лекций по информатике. Том. 8949. Международное издательство Springer. стр. 286–313. дои : 10.1007/978-3-319-15943-0_18 . ISBN  978-3-319-15943-0 .
  2. ^ «Активация использования криптографии KISA — исходный код криптографического алгоритма» . семя.киса.ор.кр.
  3. ^ «Активация использования пароля KISA – обзор» . семя.киса.ор.кр.
  4. ^ «Корейские стандарты и сертификаты (на корейском языке)» .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 939bb7f1788c9cb5e9fa214d31c8f34a__1698579180
URL1:https://arc.ask3.ru/arc/aa/93/4a/939bb7f1788c9cb5e9fa214d31c8f34a.html
Заголовок, (Title) документа по адресу, URL1:
LSH (hash function) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)