Share to: share facebook share twitter share wa share telegram print page

Lyra2

Lyra2
Создан 2014
Опубликован 2014
Тип хеш-функция

Lyra2 — криптографическая хеш-функция, которая может также использоваться, как функция формирования ключа. Lyra2 была создана Маркосом Симплисио младшим, Леонардо К. Алмейда, Эвертоном Р. Андраде, Паулу К. Ф. Сантушем и Паулу С. Л. М. Баррето из Политехнической школы Университета Сан-Паулу[1]. Lyra2 является одним из широко используемых алгоритмов хеширования наряду с PBKDF2, bcrypt и scrypt. Тем не менее, до появления Lyra2 scrypt был единственным доступным решением, учитывающим затраты памяти и времени обработки. Lyra2 представил улучшения, такие как: разделение памяти и параметров обработки, что даёт дополнительную гибкость пользователям; использование одной базовой функции губки, а не двух, используемых в scrypt; более высокая устойчивость к атакам, использующим компромиссы между временем и памятью; и более высокая производительность, позволяющая увеличить использование памяти при аналогичном времени обработки[2].

Lyra2 находится в свободном доступе и имеет два расширения:[3]

  • Lyra2-δ, дающее пользователю больший контроль над пропускной способностью.
  • Lyra2p, использующее возможности параллелизма вычислительных систем пользователей алгоритма.

Устойчивость к атакам

Основные достоинства алгоритма:

  1. Затраты по памяти и по времени могут быть разделены, что позволяет использовать ресурсы более разумно.
  2. Быстрота за счёт использования функции губки с сокращённым количеством раундов в алгоритме.
  3. Предоставление выходных данных любой желаемой длины, поэтому может работать как функция формирования ключа.

Lyra2 может быть сконфигурирован как для защиты от атакующих платформ так и для оптимизации производительности на платформе пользователя:

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

Затраты на вычисления при атаке асимптотически лежат между и при использовании порядка памяти на пользовательской платформе. Другие алгоритмы не уступают эти показателям, но на практике они имеют значение ниже, чем у Lyra2.[4][5][6][7][8]

Функция губки

Функция губки

Криптографические функции губки представляют собой хеш-функции, способные итеративно обрабатывать произвольные длины входных и выходных данных. Их конструкция включает в себя перестановку фиксированной длины, которая работает с внутренним состоянием, представленным последовательностью размером битов, состоящим из битрейта длиной и ёмкостью длиной , в сочетании с входными данными , разрезанными на b-битные блоки. Функция губки включает в себя операцию absorb (впитывание), которая заключается в итеративном применении к внутреннему состоянию после применения операции битрейта с каждым из b-битных входных битов. Заметим, что количество итераций в этой операции задаётся параметром, числом раундов . Операция squeeze (выжимание), в свою очередь, представляет собой применение ко всему внутреннему состоянию и последующую выдачу битрейта на выход, эта операция будет выполняться, пока заданное пользователем количество битов не будет предоставлено в качестве вывода. Есть также операция duplex, которая представляет собой серию пар последовательно применённых операций absorb и squeeze.

Параметры алгоритма

Lyra2 предоставляет возможность сконфигурировать алгоритм наиболее подходящим образом для нужд пользователя. Это обеспечивается за счёт различных параметров алгоритма, таких как:[3]

  • Время выполнения (затраты по времени)
  • Требуемая память (количество строк и столбцов в матрице)
  • Степень параллелизма (количество потоков)
  • Основная функция губки
  • Число блоков, используемых основной функцией губки (битрейт)
  • Количество раундов для основной функции губки
  • Длина выходной последовательности

Устройство алгоритма

Как и любая другая криптографическая хеш-функция Lyra2 принимает на вход соль и пароль, выдавая на выходе псевдослучайную последовательность. Внутренне её память организована как двумерный массив, чьи ячейки итеративно читаются и записываются, называемые просто матрицей памяти[2]. Также стоит заметить, что количество посещений ячейки матрицы для её пересчёта определяется пользователем, что позволяет настроить алгоритм в соответствии с возможностями вычислительных систем пользователя. Инициализация и посещение матрицы использует сочетание состояний операций absorb, squeeze и duplex основной функции губки, обеспечивая последовательный характер всего процесса. Кроме того, пользователи могут определять размер матрицы и количество повторных посещений её ячеек после инициализации, что позволяет точно настроить использование ресурсов Lyra2. Lyra2 состоит из четырёх последовательных фаз: bootstrapping, setup, wandering и wrap-up.

Bootstrapping

На этой стадии происходит инициализация внутреннего состояния основной функции губки. На вход основной функции губки поступают пароль, соль и другие параметры. Параметры обычно представлены длиной соли, пароля, параметром затрат по времени и по памяти, то есть теми которые задаются пользователем, также могут быть добавлены и другие. Происходит операция absorb с этими входными данными, и происходит инициализация внутреннего состояния функции губки.

Setup

На стадии Setup происходит инициализация матрицы памяти. Ячейки матрицы имеют длину бит, то есть размер битрейта основной функции губки. Для повышения производительности при работе с потенциально большой матрицей памяти программа установки использует операцию duplex функции губки над столбцами матрицы памяти с меньшим числом раундов. Этот подход ускоряет операции губки и, таким образом, позволяет охватить больше позиций памяти в заданном интервале при заданных ограничениях на затраты по времени, чем при полном цикле f. Эта фаза заканчивается, когда все столбцы матрицы памяти были посещены.

Wandering

Фаза блуждания заключается в псевдослучайной перезаписи ячеек матрицы памяти с использованием операции duplex над столбцами так же, как и в фазе Setup. Количество итераций на этом этапе ограничено параметром затрат по времени.

Wrap-up

На этом этапе происходит применение операции absorb с максимальным количество раундов, а затем операции squeeze, и получение на выходе псевдослучайной последовательности заданного размера.

Обозначения
Символы ⊕ обозначают побитовое исключающее или (XOR), в то время как ⊞ 
обозначает сложение машинных слов. Конкатенация между массивами байтов a и b
записывается a || b. Для массива байтов x, обозначения |x| и len(x) означают, соответственно, 
длину x в битах и байтах (т. е. минимальное количество битов/байтов, необходимых для 
представления x). Подразумевается, что вычислительная машина имеет little-endian 
порядок байтов, в данном описании алгоритма lsw(x) возвращает наименее
значимое словом x, а rot^y (x) — w-битный циклический сдвиг x влево, повторенный y раз.

Param: H # Функция губки с максимальным количеством раундов p_max
Param: p # Количество раундов для фаз Setup и Wandering, p < p_max
Param: Hp # Функция губки с уменьшенным количеством раундов p
Param: w # Количество бит, используемых для циклического сдвига
Input: pwd # Пароль
Input: salt # Соль
Input: T # Параметр, определяющий затраты по времени
Input: R, C # Параметры, определяющие затраты по памяти 
Input: k # Длина выходной последовательности в битах
Output: K # Зависящий от пароля хеш длиной k бит

Bootstrapping
Params <- len(k) || len(pwd) || len(salt) || T || R || C # Представляем параметры в виде последовательности байт
H.absorb(pad(pwd || salt || params)) # Разделяем последовательность на подпоследовательности длиной b бит
Prev0 <- 2 ; row1 <- 1 ; prev1 <- 0

Setup
For (col <- 0 to C-1) do {M[0][C-1-col] <- Hp.squeeze(b)} end for # Инициализируем M[0]
For (col <- 0 to C-1) do {M[1][C-1-col] <- M[0][col] ⊕ Hp.duplex(M[0][col], b)} end for # Инициализируем M[1]
For (col <- 0 to C-1) do {M[2][C-1-col] <- M[1][col] ⊕ Hp.duplex(M[1][col], b)} end for # Инициализируем M[2]

For (row0 <- 3 to R-1) do # Инициализируем оставшиеся строки
	For (col <- 0 to C-1) do # Итерация по столбцам, здесь инициализируется M[row0] и перезаписывается M[row1]
		rand <- Hp.duplex(M[row1][col] ⊞ M[prev0][col] ⊞ M[prev1][col], b)
		M[row0][C-1-col] <- M[prev0][col] ⊕ rand
		M[row1][C-1-col] <- M[row1][col] ⊕ rot(rand) # rot(): вращение на w бит
	end for
	prev0 <- row0 ; prev1 <- row1 # Определяются строки, которые будут использоваться на следующей итерации
	getNext(row1) # Обновление row1 для следующей итерации
End for

Wandering
For (wCount <- 0 to R*T - 1) do # 2*R*T строк будут перезаписаны псевдослучайным образом
	row0 <- lsw(rand) mod R ; row1 <- lsw(rot(rand)) mod R # Псевдослучайно выбираются строчки
	for (col <- 0 to C-1) do
		col0 <- lsw(rot^2(rand)) mod C ; col1 <- lsw(rot^3(rand)) mod C # Псевдослучайно выбираются столбцы
		rand <- Hp.duplex(M[row0][col] ⊞ M[row1][col] ⊞ M[prev0][col] ⊞ M[prev1][col], b)
		M[row0][col] <- M[row0][col] ⊕ rand # Перезапись псевдослучайной ячейки
		M[row1][col] <- M[row1][col] ⊕ rot(rand) # rot(): вращение на w бит
	end for
	prev0 <- row0 ; prev1 <- row1 # Определяются строки, которые будут использоваться на следующей итерации
End for

Wrap-up
H.absorb(M[row0][0])
K <- H.squeeze(k)

Return K

Производительность

Lyra2 позволяет произвести вычисления мене чем за 1 секунду при использовании 400 MB памяти при значениях параметров и [2].

Тесты были проведены на процессоре Intel Xeon E5-2430 (2,20 GHz, 12 ядер, 64-битная система) с 48 GB DRAM, на операционной системе Ubuntu 14.04 LTS 64 бит, код алгоритма был скомпилирован с помощью gcc 4.9.2[2].

Примечания

  1. Cryptology ePrint Archive: Report 2015/136. eprint.iacr.org. Дата обращения: 22 марта 2016. Архивировано 9 марта 2016 года.
  2. 1 2 3 4 Andrade, E.; Simplicio Jr, M.; Barreto, P.; Santos, P. Lyra2: efficient password hashing with high security against time-memory trade-offs (англ.) // IEEE Transactions on Computers[англ.] : journal. — 2016. — 1 January (vol. PP, no. 99). — P. 3096—3108. — ISSN 0018-9340. — doi:10.1109/TC.2016.2516011.
  3. 1 2 Simplicio Jr, Marcos A.; Almeida, Leonardo C.; Andrade, Ewerton R.; Santos, Paulo C.; Barreto, Paulo S. L. M. The Lyra2 reference guide. PHC. The Password Hashing Competition. Дата обращения: 6 декабря 2019. Архивировано 30 ноября 2020 года.
  4. Gmane -- Another PHC candidates mechanical tests. article.gmane.org. Дата обращения: 22 марта 2016. (недоступная ссылка)
  5. Gmane -- A review per day Lyra2. article.gmane.org. Дата обращения: 22 марта 2016. (недоступная ссылка)
  6. Gmane -- Lyra2 initial review. article.gmane.org. Дата обращения: 22 марта 2016. (недоступная ссылка)
  7. Gmane -- Memory performance and ASIC attacks. article.gmane.org. Дата обращения: 22 марта 2016. (недоступная ссылка)
  8. Gmane -- Quick analysis of Argon. article.gmane.org. Дата обращения: 22 марта 2016. (недоступная ссылка)

Ссылки

Read other articles:

Kota San DiegoKota BenderaLambangJulukan: Kota Terbaik AmerikaMotto: Semper Vigilans (Latin untuk Selamanya Berjaga)Negara Amerika SerikatNegara bagianCaliforniaCountySan DiegoFounded16 Juli 1769Incorporated27 Maret 1850Pemerintahan • JenisDewan Wali kota • Wali kotaJerry Sanders (R) • JaksaJan Goldsmith • Dewan KotaSherri LightnerKevin FaulconerTodd GloriaTony YoungCarl DeMaioDonna FryeMarti EmeraldBen HuesoLuas • Kot...

 

Municipio de President Municipio Ubicación en el condado de VenangoUbicación del condado en PensilvaniaUbicación de Pensilvania en EE. UU.Coordenadas 41°31′00″N 79°33′59″O / 41.516666666667, -79.566388888889Entidad Municipio • País  Estados Unidos • Estado  Pensilvania • Condado VenangoSuperficie   • Total 99.6 km² • Tierra 96.8 km² • Agua (2,8%) 2,8 km²Población (2000)   • Total 5...

 

Ця стаття є частиною Проєкту:Населені пункти України (рівень: невідомий) Портал «Україна»Мета проєкту — покращувати усі статті, присвячені населеним пунктам та адміністративно-територіальним одиницям України. Ви можете покращити цю статтю, відредагувавши її, а на стор�...

Ця стаття не містить посилань на джерела. Ви можете допомогти поліпшити цю статтю, додавши посилання на надійні (авторитетні) джерела. Матеріал без джерел може бути піддано сумніву та вилучено. (серпень 2022) Центральний банк М'янми Тип {{{тип}}}Засновано 1990Головний офіс Не�...

 

A-ha discographyStudio albums11Live albums5Compilation albums8Video albums7Music videos44EPs10Singles50Promotional singles6Box sets6Reissues9Audiobooks1 The discography of A-ha, a Norwegian synthpop/rock band, consists of eleven studio albums, eight compilation albums, six box sets, ten extended plays, and fifty singles. This list does not include solo material or other projects recorded by A-ha band members. A-ha was formed in 1982 by vocalist Morten Harket, guitarist Paul Waaktaar-Savoy, an...

 

Skånland kommune Skániid suohkanMunisipalitasView of Evenskjer Lambang kebesaranLetak Skånland di TromsNegara NorwegiaCountyTromsDistrictCentral HålogalandAdministrative centreEvenskjerPemerintahan • Mayor (2011)Einar Aune (H)Luas • Total495,07 km2 (19,115 sq mi) • Luas daratan464,84 km2 (17,948 sq mi) • Luas perairan30,23 km2 (1,167 sq mi)Peringkat209 in NorwayPopulasi (2012) ...

Hamlet in the civil parish of Burwell, in the East Lindsey district of Lincolnshire, England Human settlement in EnglandWalmsgateApproaching Walmsgate on the A16WalmsgateLocation within LincolnshireOS grid referenceTF364783• London120 mi (190 km) SCivil parishBurwellDistrictEast LindseyShire countyLincolnshireRegionEast MidlandsCountryEnglandSovereign stateUnited KingdomPost townLouthPostcode districtLN11PoliceLincolnshireFireLincolnshireAmbulanc...

 

Japanese scientist This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article contains wording that promotes the subject in a subjective manner without imparting real information. Please remove or replace such wording and instead of making proclamations about a subject's importance, use facts and attribution to demonstrate that importance. (April 2020) (Learn how and when to remove this...

 

Martín Enríquez de AlmansaMartín Enríquez de Almansa y Ulloa (auch in abweichender Schreibweise: Almanza) (* um 1510 in Toro, Kastilien-León, Spanien; † 9. März 1583 in Lima, Peru) war ein spanischer Offizier, der von 1568 bis 1580 als Vizekönig von Neuspanien und von 1581 bis zu seinem Tod 1583 als Vizekönig von Peru amtierte. Inhaltsverzeichnis 1 Leben 1.1 Vizekönig von Neuspanien 1.2 Vizekönig von Peru 2 Weblinks Leben Er wurde als Sohn von Francisco Enríquez de Almansa und Is...

American lawyer, politician and judge Ernesto ScorsoneJudge of theFayette County Circuit CourtIn officeAugust 2008 – November 30, 2021Appointed bySteve BeshearPreceded bySheila IsaacSucceeded byJeffrey TaylorMember of the Kentucky Senatefrom the 13th districtIn office1996–2008Succeeded byKathy SteinMember of the Kentucky House of Representativesfrom the 75th districtIn office1984–1996Succeeded byKathy Stein Personal detailsBorn (1952-02-15) February 15, 1952 (age...

 

Pour les articles homonymes, voir ENSIM. École nationale supérieure des ingénieurs de l'infrastructure militaireInsigne de l'ENSIMHistoireFondation 2010StatutType Grande école militaireDirecteur Ingénieur en chef de 1ère classe Jean-Yves PicautMembre de Service d'infrastructure de la DéfenseChiffres-clésÉtudiants environ 20 par anLocalisationPays FranceVille AngersLocalisation sur la carte d’AngersLocalisation sur la carte de Francemodifier - modifier le code - modifier Wikidata L�...

 

Market in Colombo, Sri Lanka Pettah Floating Market The Pettah Floating Markets are located on Bastian Mawatha in Pettah, a neighborhood in Colombo, Sri Lanka, and consist of 92 trade stalls, with a number of the stalls established on boats on Beira Lake.[1] The floating market serves as a tourist attraction selling local produce and local handicraft.[2] The development of the floating market and beautification works were carried out by the Urban Development Authority (UDA) at...

Italian composer Tarquinio MerulaBackground informationBorn(1595-11-24)24 November 1595Busseto, ItalyDied10 December 1665(1665-12-10) (aged 70)Cremona, ItalyGenresBaroqueOccupation(s)Composer, organist, violinistInstrument(s)OrganviolinYears active1616–1665Musical artist Tarquinio Merula (24 November 1595 – 10 December 1665) was an Italian composer, organist, and violinist of the early Baroque era. Although mainly active in Cremona, stylistically he was a member of the Venetian schoo...

 

TV show awards 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: 14th TVyNovelas Awards – news · newspapers · books · scholar · JSTOR (April 2016) (Learn how and when to remove this template message) 14th TVyNovelas AwardsDateMay 7, 1996LocationMéxico D.F.Hosted byErika Buenfil & Eduardo SantamarinaMost a...

 

Simcha ShirmanSimha Shirman in his Studio in Tel AvivBorn1947GermanyNationalityIsraeliKnown forPhotography Simcha Shirman (Born 1947) is a German-born Israeli photographer and educator.[1] Biography Early life Simcha Shearman was born in 1947 to Batya and David, both Holocoust survivors. He was born in Saint Ottilien Convent, which was converted by USA occupation authorities to a soldier and refugee hospital after WWII. His birth certificate states that he is a displaced person. ...

This article uses bare URLs, which are uninformative and vulnerable to link rot. Please consider converting them to full citations to ensure the article remains verifiable and maintains a consistent citation style. Several templates and tools are available to assist in formatting, such as reFill (documentation) and Citation bot (documentation). (August 2022) (Learn how and when to remove this template message) Suburb of Greater Newcastle, New South Wales, AustraliaSpeers PointGreater Newcastl...

 

Artikel ini tidak memiliki kategori atau memiliki terlalu sedikit kategori. Bantulah dengan menambahi kategori yang sesuai. Lihat artikel yang sejenis untuk menentukan apa kategori yang sesuai.Tolong bantu Wikipedia untuk menambahkan kategori. Akademi Sahur IndonesiaMusim 7Logo AKSI Indonesia Tahun 2023Presenter Abdel Achrian Irfan Hakim Ramzi Gilang Dirga Lady Rara Adul Juri Dedeh Rosidah Wijayanto Subki Al-Bughury Sholeh Mahmoed Nasution Habib Usman bin Yahya Jum. peserta24PemenangIcuk Sugi...

 

Indonesian actress (born 1942) Indriati IskakIndriati in August 2016BornIndriati Gerald Bernardina (1942-06-09) 9 June 1942 (age 81)Surabaya, Japanese-occupied East IndiesNationalityIndonesianOccupationsActresswriterpsychologistmarketerSpouse Makki Perdanakusuma ​ ​(m. 1962; died 2014)​Children3RelativesHalim Perdanakusuma (brother in-law) In this Indonesian name, there is no family name. The name Iskak is a patronymic, and the person shoul...

This article is about the film. For other uses, see Alphabet Murders (disambiguation). 1965 British filmThe Alphabet MurdersTheatrical release posterDirected byFrank TashlinWritten byDavid Pursall (screenplay)Jack Seddon (screenplay)Agatha Christie (novel)Produced byLawrence P. BachmannStarringTony RandallAnita EkbergRobert MorleyCinematographyDesmond DickinsonMusic byRon GoodwinDistributed byMetro-Goldwyn-MayerRelease dates August 1965 (1965-08) (UK) 17 May 1966 ...

 

This article's lead section may be too long. Please read the length guidelines and help move details into the article's body. (November 2014) Part of a series onGovernance Models Algorithmic Bad Collaborative Electronic Good Multistakeholder Open-source Private By level Local Global By field Climate Clinical Corporate Cultural Data Earth system Ecclesiastical Environmental Higher education Information Network Ocean Political party Project Security sector Self Simulation Service-oriented archi...

 
Kembali kehalaman sebelumnya