Skein

Skein
Создан 2008
Опубликован 2008
Размер хеша переменный, 0<d≤264-1
Число раундов переменное, 72 для 256/512-бит выхода, 80 - для 1024 бит
Тип хеш-функция

Skein — алгоритм хеширования переменной разрядности, разработанный группой авторов во главе с Брюсом Шнайером. Хеш-функция Skein выполнена как универсальный криптографический примитив, на основе блочного шифра Threefish, работающего в режиме UBI-хеширования.[1] Основные требования, предъявлявшиеся при разработке — оптимизация под минимальное использование памяти, криптографически безопасное хеширование небольших сообщений, устойчивость ко всем существующим атакам на хеш-функции, оптимизация под 64-разрядные процессоры и активное использование обращений к таблицам.

История

Skein была создана в 2008 году группой авторов во главе с Брюсом Шнайером и вошла в пятёрку финалистов конкурса SHA-3, однако в 2012 в финале победителем был выбран алгоритм Keccak, наиболее производительный и нечувствительный к уязвимостям SHA-2[2]. Название хеш-функции Skein означает «моток пряжи».

Алгоритм

Threefish Block

Threefish — это настраиваемый блочный шифр, определённый для блоков размером 256, 512 и 1024 бит. Шифр реализован в виде подстановочно-перестановочной сети. В основе шифра лежит простая функция MIX, принимающая на вход два 64-битных слова и состоящая из блоков сложения, циклического сдвига на константу, и сложения по модулю 2 (XOR). Используется 72 раунда для 256-битного и 512-битного шифра, и 80 раундов для 1024-битного шифра. Между раундами происходит перестановка слов, а каждые четыре раунда добавляется ключ, за счёт чего появляется нелинейность.

UBI

Threefish в Skein используется в режиме UBI (Unique Block Iteration) хеширования. Режим UBI — это разновидность режима Matyas-Meyer-Oseas.[1] Каждое звено UBI комбинирует входные сообщения с предыдущего звена цепи с последовательностью произвольной длины и устанавливает на выходе значение фиксированного размера. Сообщение, передающееся между звеньями (твик), содержит информацию о том, сколько байт было обработано, флаги начала и конца цепочки, и поле типа данных, которое позволяет различать сферы применения UBI. UBI гарантирует невоспроизводимость результата хеширования одного и того же сообщения и дополнительную защиту за счёт того, что на вход хеш-функции и шифра попадают одни и те же сообщения. UBI устроен следующим образом. Каждое звено цепи — это функция

 — начальное -байтное значение
 — сообщение, представленное строкой байт (длина этой строки может быть произвольной, но максимум бит)
 — стартовое значение твика целочисленного типа (128 бит).

Твик содержит следующие поля:

  • Position — количество уже обработанных байт.
  • Reserved — зарезервированные нулевые биты
  • TreeLevel — позиция в дереве хеширования, либо ноль, если этот способ хеширования не применяется.
  • BitPad — флаг, который поднимается в случае, если в блоке обрабатывался последний байт входного сообщения, которое содержит не целое число байт. В остальных случаях поле имеет значение 0.
  • Type тип вызова UBI. Возможные значения см. ниже.
  • First — флаг начала цепочки.
  • Final — флаг конца цепочки.

Вычисления происходят следующим образом. Если количество бит делится на 8, то положим и . Если количество бит не делится на 8, то дополним последний (неполный) байт следующим образом: старшему неиспользуемому биту присвоим значение 1, остальным 0 положим и с учётом дополненного байта. — это число байт в . Входное значение ограничено . Далее дополним нулями так, чтобы количество бит , было кратно и назовём полученный результат . Разобьём на блоков по байт каждый. Значение UBI вычисляется так:

,

где  — функция вычисления блочного шифра, , остальные

Твик вычисляется по формуле:

Первое слагаемое определяет поля TreeLevel и Type, второе — поле Position, третье — выставляет флаг First, четвёртое — флаги Final и BitPad.

Дополнительные аргументы

В поле Type путём присвоения соответствующего значения могут быть заданы следующие параметры

  • Key (Ключ). Используется в случае, если Skein работает как MAC или KDF. Вызов UBI с этим параметром происходит первым, чтобы использовать дополнительные возможности защиты.
  • Configuration (Конфигурация). Используется всегда. Задаёт размер выходного значения и параметры для поддержки дерева хеширования.
  • Personalisation (Персонализация). Параметр, который используется, если для разных пользователей требуются разные функции.
  • Public Key (Открытый ключ). Используется для хеширования открытого ключа для подписи сообщения.
  • Key Derivation Identifer.
  • Nonce. Используется для работы в режиме потокового шифра
  • Message (Сообщение). Сообщение для хеширования
  • Output (Выход). Используется всегда, указывает на выходное преобразование.

Skein

В окончательном варианте вычисление Skein происходит следующим образом. Skein имеет следующие входные аргументы:

  • Внутренний размер в байтах. Может принимать значения 32, 64, or 128.
  • Размер выходного значения в битах.
  • Ключ длиной байт. Может быть пустой строкой.
  • Размер листа дерева хеширования.
  • Коэффициент разветвления дерева.
  • Максимальная высота дерева
  • Список из наборов (, ) где  — значение поля Type,  — строка байт.

Сначала генерируется ключ . Если  — пустая строка, то начальное значение :. Если нет, то вычисляется так:

Далее вычисления происходят по следующей схеме:

Здесь  — конфигурационная строка, которая содержит идентификатор (он нужен, чтобы различать разные функции, созданные на основе UBI), информацию о версии, длине выходного значения, параметрах дерева.

Окончательный результат определяется так называемой функцией , которая определяется, как ведущие байт выражения

Если параметры , , ненулевые, то вычисления производятся иначе. Определяется размер листа дерева как и размер узла как .

Сообщение l-го уровня делится на блоки размером и вычисляется следующий уровень дерева, как слияние по всем

Если же длина равна , то хеширование окончено и его результат . Если длина больше , но , достигнута максимальная высота дерево, и в этом случае результат хеширования .

Также существует упрощённая версия Skein с аргументами , , . Поле Type может принимать только значения Cfg и Msg

Криптоанализ

В 2009 году коллектив авторов[3] исследовал Threefish, как важную часть Skein, на криптоустойчивость. Совокупно с исследованиями создателей[1] , они пришли к результату, указанному в таблице.

Кол-во раундов Время Память Вид криптоанализа
8 1 - 511-битная псевдоколлизия
16 26 - 459-битная псевдоколлизия
17 224 - 434-битная псевдоколлизия
17 28,6 - Related-key distinguisher
21 23.4 - Related-key distinguisher
21 - - Related-key impossible differential
25 ? - Related-key key recovery (conjectured)
25 2416.6 - Related-key key recovery
26 2507.8 - Related-key key recovery
32 2312 271 Related-key boomerang key recovery
34 2398 - Related-key boomerang distinguisher
35 2478 - Known-related-key boomerang distinguisher

Кроме того, ещё один коллектив авторов[4] в 2010 году показал, что используя циклический криптоанализ, можно провести атаку на основе подобранного ключа на Threefish, но только если используется 53/57 раундов вместо 72. Для атаки на Skein этого недостаточно, поэтому предлагается совмещать циклический криптоанализ с дифференциальным.

Быстродействие

Существуют реализации Skein для трёх вариантов значения внутреннего состояния: 256, 512 и 1024 бит. Основным вариантом считается Skein-512, который может быть безопасно использован для всех криптографических приложений в обозримом будущем. 1024-битный вариант ещё более безопасен и в существующих аппаратных реализациях работает в два раза быстрее. Skein-256 — оптимальный вариант для использования в устройствах с малым объёмом памяти (например, в смарт-картах), так как требует только 100 байт ОЗУ, в отличие от Skein-512, требующей 200 байт. В связи с устройством Threefish, Skein работает быстрее всего на 64-битных процессорах. В таблице ниже приведена сравнительная характеристика быстродействия Skein и алгоритмов SHA. В таблице показана скорость (в тактах на байт) реализации на языке Си на 64-битном процессоре.

Алгоритм/Длина сообщения (байт) 1 10 100 1000 10000 100000
Skein-256 774 77 16,6 9,8 9,2 9,2
Skein-512 1086 110 15,6 7,3 6,6 6,5
Skein-1024 3295 330 33,2 14,2 12,3 12,3
SHA-1 677 74,2 14,0 10,4 10,0 10,0
SHA-224 1379 143,1 27,4 20,7 20,1 20,0
SHA-256 1405 145,7 77,6 20,7 20,1 20,0
SHA-384 1821 187,3 19,6 13,7 13,4 13,3
SHA-512 1899 192,5 20,6 13,8 13,4 13,3

Как видно из таблицы, Skein работает в два раза быстрее, чем SHA-512.

Применение

Область применения Skein достаточно широка. Используя сообщение и ключ в качестве соответствующих входов, можно вычислить MAC. Возможно использование в качестве хеш-функции для вычисления HMAC. При помощи аргумента Nonce использовать Skein в режиме поточного шифра. Также возможно применение в качестве генератора псевдослучайных чисел, например, в алгоритмах Fortuna и Yarrow, в качестве Key Derivation Function и Password-Based Key Derivation Function(используя аргументы Key и Key Derivation Identifer ), в качестве хеш-функции для вычисления электронной подписи (подразумевается использование аргумента Public Key).

При помощи аргумента Personalisation все приложения Skein могут быть персонифицированы для конкретного пользователя. Например для приложения FOO строка персонализации в UTF8 Unicode может выглядеть так

20081031 somebody@example.com FOO/bar,

где bar — персонификация внутри приложения.

Примеры хешей Skein

Значения разных вариантов хеша от пустой строки.

Skein256-224("")
0x 0fadf1fa39e3837a95b3660b4184d9c2f3cfc94b55d8e7a083278bf8

Skein256-256("") 0x c8877087da56e072870daa843f176e9453115929094c3a40c463a196c29bf7ba
Skein512-224("") 0x 1541ae9fc3ebe24eb758ccb1fd60c2c31a9ebfe65b220086e7819e25
Skein512-256("") 0x 39ccc4554a8b31853b9de7a1fe638a24cce6b35a55f2431009e18780335d2621
Skein512-384("") 0x dd5aaf4589dc227bd1eb7bc68771f5baeaa3586ef6c7680167a023ec8ce26980f06c4082c488b4ac9ef313f8cbe70808
Skein512-512("") 0x bc5b4c50925519c290cc634277ae3d6257212395cba733bbad37a4af0fa06af4 1fca7903d06564fea7a2d3730dbdb80c1f85562dfcc070334ea4d1d9e72cba7a
Skein1024-384("") 0x 1fdb081963b960e89eaa11b87dda55e8a55a3e1066b30e38d8ae2a45242f7dadfaf06d80ca8a73cd8242ce5eab84c164
Skein1024-512("") 0x e2943eb0bc0efabd49503a76edf7cfcf072db25bad94ed44fe537284163f3119 c47ac6f78699b4272255966e0aba65c75a0a64bd23df6996d1bc3174afd9fa8b
Skein1024-1024("") 0x 0fff9563bb3279289227ac77d319b6fff8d7e9f09da1247b72a0a265cd6d2a62 645ad547ed8193db48cff847c06494a03f55666d3b47eb4c20456c9373c86297 d630d5578ebd34cb40991578f9f52b18003efa35d3da6553ff35db91b81ab890 bec1b189b7f52cb2a783ebb7d823d725b0b4a71f6824e88f68f982eefc6d19c6

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

Skein512-256("The quick brown fox jumps over the lazy dog")
0x b3250457e05d3060b1a4bbc1428bc75a3f525ca389aeab96cfa34638d96e492a

Skein512-256("The quick brown fox jumps over the lazy dog.") 0x 41e829d7fca71c7d7154ed8fc8a069f274dd664ae0ed29d365d919f4e575eebb

Ссылки

Примечания

  1. 1 2 Документация Skein, Версия 1.3 (2010-10-01). Дата обращения: 17 декабря 2013. Архивировано 24 августа 2014 года.
  2. NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition. NIST. Дата обращения: 2 октября 2012. Архивировано 5 октября 2012 года.
  3. Jean-Philippe Aumasson1, C¸ a˘gda¸s C¸ alık, Willi Meier1, Onur Ozen, Raphael C.-W. and Kerem Varıcı,. Improved Cryptanalysis of Skein (неопр.). — University of Luxembourg, 2009. Архивировано 10 мая 2012 года.
  4. Dmitry Khovratovich and Ivica Nikolić. Rotational Cryptanalysis of ARX (неопр.). — University of Luxembourg, 2010. Архивировано 26 января 2013 года.

Read other articles:

Halaman ini berisi artikel tentang kabinet Perdana Menteri Hungaria Viktor Orbán. Untuk kabinet Perdana Menteri Rumania Ludovic Orban, lihat Kabinet Orban Kedua. Pemerintahan Orbán KeduaPemerintahan Kerjasama NasionalKabinet Pemerintahan Hungaria ke-70Dibentuk29 Mei 2010Diselesaikan6 Juni 2014Struktur pemerintahanKepala negaraLászló Sólyom (Independen)Pál Schmitt (Fidesz)János Áder (Fidesz)Kepala pemerintahanViktor OrbánPartai anggotaFidesz, KDNPStatus di legislatifKoalisiPartai oposisi…

Cemetery in Moscow Kuntsevo CemeteryКунцевское кладбищеDetailsEstablished17th centuryLocationMoscowCountryRussiaCoordinates55°42′28″N 37°25′00″E / 55.70778°N 37.41667°E / 55.70778; 37.41667Size17 hectares (42 acres) The Kuntsevo Cemetery (Russian: Ку́нцевское кла́дбище, romanized: kúntsevkoye kládbishche) is a cemetery servicing Kuntsevo, Moscow. It is located on the bank of the Setun River, to the south of the Mozh…

2016年美國總統選舉 ← 2012 2016年11月8日 2020 → 538個選舉人團席位獲勝需270票民意調查投票率55.7%[1][2] ▲ 0.8 %   获提名人 唐納·川普 希拉莉·克林頓 政党 共和黨 民主党 家鄉州 紐約州 紐約州 竞选搭档 迈克·彭斯 蒂姆·凱恩 选举人票 304[3][4][註 1] 227[5] 胜出州/省 30 + 緬-2 20 + DC 民選得票 62,984,828[6] 65,853,514[6] 得…

Golpe de Estado de julio de 1936 en Madrid Parte de Guerra civil española y Golpe de Estado en España de julio de 1936 Fecha 19-20 de julio de 1936Lugar Madrid (España)Coordenadas 40°25′27″N 3°43′04″O / 40.42403333, -3.71764444Resultado Decisiva victoria republicanaBeligerantes República Española Fuerzas sublevadas Comandantes José Miaja MenantRicardo BurilloUrbano Orad de la TorreJuan Guilloto LeónErnesto Carratalá  Hidalgo de Cisneros Joaquín Fanjul …

 烏克蘭總理Прем'єр-міністр України烏克蘭國徽現任杰尼斯·什米加尔自2020年3月4日任命者烏克蘭總統任期總統任命首任維托爾德·福金设立1991年11月后继职位無网站www.kmu.gov.ua/control/en/(英文) 乌克兰 乌克兰政府与政治系列条目 宪法 政府 总统 弗拉基米尔·泽连斯基 總統辦公室 国家安全与国防事务委员会 总统代表(英语:Representatives of the President of Ukraine) 总理…

FlyOne IATA ICAO Kode panggil 5F[1] FIA[1] FIA Didirikan2015Mulai beroperasiJuni 2016Pusat operasiBandar Udara Internasional ChișinăuAnak perusahaanFlyOne ArmeniaArmada5Tujuan27Kantor pusatChișinău, MoldovaSitus webhttp://www.flyone.eu FlyOne adalah maskapai penerbangan bertarif rendah swasta yang berkantor pusat di Chișinău, Moldova. Maskapai penerbangan ini didirikan pada tahun 2015 dan secara resmi mulai beroperasi pada tahun 2016.[2][3] Maskapai penerban…

习近平 习近平自2012年出任中共中央总书记成为最高领导人期间,因其废除国家主席任期限制、开启总书记第三任期、集权统治、公共政策与理念、知识水平和自述经历等争议,被中国大陸及其他地区的民众以其争议事件、个人特征及姓名谐音创作负面称呼,用以恶搞、讽刺或批评习近平。对习近平的相关负面称呼在互联网上已经形成了一种活跃、独特的辱包亚文化。 权力類 …

الحزب الاجتماعي التحرري البلد تونس  التأسيس تاريخ التأسيس 1988 الشخصيات قائد الحزب المنذر ثابت  [لغات أخرى]‏  القادة منذر ثابت (أمين العام) المقر الرئيسي تونس  الأفكار الأيديولوجيا الليبرالية المشاركة في الحكم عدد النواب 0 / 217 المشاركة في الحكومة لا معلومات أخر…

President of the United States from 2001 to 2009 This article is about the 43rd president of the United States. For his father, the 41st president, see George H. W. Bush. George W. BushOfficial portrait, 200343rd President of the United StatesIn officeJanuary 20, 2001 – January 20, 2009Vice PresidentDick CheneyPreceded byBill ClintonSucceeded byBarack Obama46th Governor of TexasIn officeJanuary 17, 1995 – December 21, 2000Lieutenant Bob Bullock Rick Perry Preceded byAnn…

  هذه المقالة عن شمس منتصف الليل. لمعانٍ أخرى، طالع شمس منتصف الليل (توضيح). خلل ألتا [الإنجليزية] في ألتا، النرويج تغطيها شمس منتصف الليل. شمس منتصف الليل في رأس الشمال في جزيرة ماجيراوي في النرويج شمس منتصف الليل هي ظاهرة طبيعية تحدث في أشهر الصيف في أماكن تقع شمال الدائ…

La Presse de la Manche Siège du quotidien au 9, rue Gambetta à Cherbourg-Octeville Pays France Langue Français Périodicité quotidien Format Tabloïd (depuis 2018) Genre Presse écrite départementale Prix au numéro 1,20€ du dimanche au vendredi ; 1,40€ le samedi Diffusion 17 794 ex. (2023) Date de fondation 5 octobre 1953 Ville d’édition Cherbourg-en-Cotentin Propriétaire Publihebdos Directeur de publication Francis Gaunand Directeur de la rédaction Cédran de Sainte Lorette …

This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (August 2012) (Learn how and when to remove this message) Radio station in New York, United StatesWGBBFreeport, New YorkUnited StatesBroadcast areaNassau CountyFrequency1240 kHzProgrammingLanguage(s)Chinese, English, and SpanishFormatBrokered programmingOwnershipOwnerWGBB AM, Inc.HistoryFirst air date1924; 1…

Politics of Kosovo Constitution and law Executive President Vjosa Osmani Prime Minister Albin Kurti Second Kurti cabinet Government Legislature Assembly Chairman: Glauk Konjufca Judiciary Constitutional Court Kosovo Judicial Council Administrative divisions Districts Municipalities Recent elections Presidential: 201120162021 Parliamentary: 201420172019 Local: 2009201320172021 Referendums: 199120122024 Political parties PDKLDKAAKSLSVVAKR Foreign policy Ministry of Foreign Affairs Foreign relation…

Former stadium in Jersey City, New Jersey, US This article is about the stadium in Jersey City. For the stadium in Union City, see Roosevelt Stadium (Union City). Roosevelt StadiumMain stadium entrance, ca. 1940Full nameJersey City Roosevelt StadiumLocationDanforth Ave. & New Jersey Route 1 (now NJ Route 440)Jersey City, New JerseyCoordinates40°42′23″N 74°6′18″W / 40.70639°N 74.10500°W / 40.70639; -74.10500OwnerJersey CityOperatorJersey CityCapacity24,000F…

Overview of music traditions in Finland This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Music of Finland – news · newspapers · books · scholar · JSTOR (April 2010) (Learn how and when to remove this message) Part of a series on theCulture of Finland History Prehistory Early Finnish wars Finland under Swedish ru…

Makam Marie Dubas di Pemakaman Père-Lachaise, Paris (divisi 36) Marie Dubas merupakan seorang pemeran dan penyanyi Prancis, lahir 3 September 1894 dan meninggal 2 Februari 1972.[1] Lahir di Paris, Marie Dubas memulai kariernya sebagai pemeran panggung tetapi menjadi terkenal sebagai penyanyi. Dengan menggunakan Yvette Guilbert yang terkenal sebagai modelnya, Dubas mulai bernyanyi di kabaret kecil Montmartre dengan mencampurkan komedi ke dalam aktivitasnya. Dia kemudian mendapat tawaran …

DoubtPoster film DoubtSutradaraJohn Patrick ShanleyProduserScott RudinDitulis olehJohn Patrick ShanleyBerdasarkanDoubt: A Parableoleh John Patrick ShanleyPemeranMeryl StreepPhilip Seymour HoffmanAmy AdamsPenata musikHoward ShoreSinematograferRoger DeakinsPenyuntingDylan TichenorPerusahaanproduksiScott Rudin ProductionsDistributorMiramax FilmsTanggal rilis 30 Oktober 2008 (2008-10-30) (Festival Lembaga Film Amerika) 12 Desember 2008 (2008-12-12) (terbatas di Amerika Serika…

مقام أبي زمعة البلويمعلومات عامةجزء من مدينة القيروان العتيقة الدِّين الإسلام البلد تونس[1] تقع في التقسيم الإداري القيروان الإحداثيات 35°40′55″N 10°05′26″E / 35.68192°N 10.09049°E / 35.68192; 10.09049[2] الصفة التُّراثيَّة معلم أثري مصنف[1][3] (1912 – )جزء من مواقع الترا…

  هذه المقالة عن شهرزاد، راوية حكايات ألف ليلة وليلة. لمعانٍ أخرى، طالع شهرزاد (توضيح). شَهْرَزَاد شهرزاد بريشة سوفي أندرسن من القرن التاسع عشر م معلومات شخصية الديانة مسلمة الزوج شهريار الحياة العملية شخصية ألف ليلة وليلة الممثل ميلي افيتال، كاثرين زيتا جونز، كلود جاد…

Fotografia dal passaporto del matematico tedesco Erich Immanuel Trefftz (Lipsia, 21 febbraio 1888 – Dresda, 21 gennaio 1937) è stato un matematico e ingegnere tedesco. È stato uno dei più importanti matematici tedeschi, sviluppando un particolare interesse nei problemi sulla meccanica del continuo. A lui si deve l'introduzione del cosiddetto piano di Trefftz in campo aerodinamico. Indice 1 Biografia 2 Note 3 Bibliografia 4 Altri progetti 5 Collegamenti esterni Biografia Nacque in una famigl…