Scrypt

scrypt
Впервые опубликован май 2009

scrypt (читается эс-крипт[1]) — адаптивная криптографическая функция формирования ключа на основе пароля, созданная офицером безопасности FreeBSD Колином Персивалем для системы хранения резервных копий Tarsnap. Функция создана таким образом, чтобы усложнить атаку перебором при помощи ПЛИС. Для её вычисления требуется значительный объём памяти со случайным доступом. 17 сентября 2012 года алгоритм scrypt был опубликован IETF в виде Internet Draft, планируется его внесение в RFC[2]. Используется, например, в качестве доказательства выполненной работы в криптовалюте Litecoin[3].

Основанные на пароле функции формирования ключа (password-based key derivation function, PBKDF) обычно разрабатываются таким образом, чтобы требовать относительно большого времени вычисления (по порядку величины — сотни миллисекунд). При использовании легальным пользователем требуется вычислить подобную функцию один раз (например при аутентификации) и такое время допустимо. Но при проведении атаки полного перебора атакующему требуется произвести миллиарды вычислений функции и её вычислительная сложность делает атаку более медленной и дорогой.

Однако ранние функции PBKDF (например PBKDF2, разработанная RSA Laboratories) вычисляются сравнительно быстро, и их перебор может быть эффективно реализован на специализированном оборудовании (FPGA или ASIC). Такая реализация позволяет запускать масштабные параллельные атаки перебора грубой силы, например, с использованием сотен экземпляров функции в каждой микросхеме FPGA.

Функция scrypt разрабатывалась с целью усложнить аппаратные реализации путём увеличения количества ресурсов, требуемых для вычисления. Данный алгоритм использует значительное количество оперативной памяти (памяти со случайным доступом) по сравнению с другими PBKDF. Память в scrypt используется для хранения большого вектора псевдослучайных битовых последовательностей, генерируемых в начале алгоритма[4]. После создания вектора его элементы запрашиваются в псевдослучайном порядке и комбинируются друг с другом для получения ключа. Так как алгоритм генерации вектора известен, возможна реализация scrypt, не требующая памяти, а высчитывающая каждый элемент в момент обращения. Однако, вычисление элемента относительно сложно и в процессе работы функции scrypt каждый элемент считывается много раз. В scrypt заложен такой баланс между памятью и временем, что реализации, не использующие память, слишком медленны.

Определение scrypt

scrypt (P, S, N, r, p, dkLen) = MFcryptHMAC SHA256,SMixr (P, S, N, p, dkLen)

где N, r, p — параметры, задающие сложность вычисления функции.

MFcrypt определена так: DK = MFcrypt PRF,MF (P, S, N, p, dkLen)

где

  • PRF — псевдослучайная функция (в scrypt — HMAC-SHA256)
  • hLen — длина выхода PRF в байтах
  • MF (mixing function) — последовательная функция, требующая память со случайным доступом (отображение из в (в scrypt — SMix на базе Salsa20/8)
  • MFLen — длина блока, перемешиваемого в MF (в байтах). MFLen =128 * r.

Входные параметры scrypt и MFcrypt:

  • P — пароль (passphrase) — байтовая строка.
  • S — соль (salt) — байтовая строка.
  • N — параметр, задающий сложность (количество итераций для MF).
  • r — параметр, задающий размер блока.
  • p — степень параллельности, целое число, меньшее чем (232 − 1)*hLen/MFLen
  • dkLen — требуемая длина выходного ключа в байтах, не более чем (232 − 1)*hLen.
  • DK — выходной ключ

Функция MFcrypt работает по алгоритму:

  1. (B0 … Bp−1) = PBKDF2 PRF (P, S, 1, p * MFLen)
  2. Для всех i от 0 до p−1 применить функцию MF:
    Bi = MF(Bi, N)
  3. DK = PBKDF2 PRF (P, B0 || B1 || … || Bp−1,1, dkLen)

Потребление памяти оценивается в 128*r*N байт[5]. Соотношение количества чтений и записей в эту память оценивается в 100 % и 63 %[6].

Примеры

Рекомендуемые параметры scrypt: N = 16384, r = 8, p = 1 (потребление памяти — около 16 МБ)[5][6].

Скорость вычисления одной операции scrypt на процессоре общего назначения составляет около 100 миллисекунд при настройке на использование 32 МБ памяти. При настройке на длительность операции в 1 миллисекунду используется слишком мало памяти и алгоритм становится слабее алгоритма bcrypt, настроенного на сравнимую скорость[7].

Криптовалюта Litecoin использует такие параметры scrypt: N = 1024, r = 1, p = 1, размер входного параметра и соли — 80 байт, размер DK — 256 бит (32 байта)[8]. Потребление оперативной памяти — около 128 КБ. Вычисление такого scrypt на видеокартах приблизительно в 10 раз быстрее, чем на процессорах общего назначения[6], что является признаком выбора недостаточно сильных параметров[7].

См. также

Примечания

  1. Colin Percival on Twitter: "For the record, "scrypt" is pronounced "ess crypt". Like bcrypt, except with an S instead of the B. It is NOT pronounced "script".". Дата обращения: 4 мая 2017. Архивировано 17 февраля 2019 года.
  2. C. Percival, S. Josefsson. The scrypt Password-Based Key Derivation Function (неопр.). — Инженерный совет Интернета, 2012. — 17 September.
  3. Litecoin — Bitcoin. Дата обращения: 16 июля 2013. Архивировано 16 июня 2018 года.
  4. Архивированная копия. Дата обращения: 17 июля 2013. Архивировано 17 декабря 2013 года. page 5
  5. 1 2 Crypto.Scrypt
  6. 1 2 3 http://2012.zeronights.org/includes/docs/SolarDesigner%20-%20New%20Developments%20in%20Password%20Hashing.pdf Архивная копия от 28 декабря 2016 на Wayback Machine slide 4 «Issues with scrypt for mass user authentication»; slide 6
  7. 1 2 http://distro.ibiblio.org/openwall/presentations/Password-Hashing-At-Scale/YaC2012-Password-Hashing-At-Scale.pdf Архивная копия от 18 октября 2014 на Wayback Machine slide 18 «GPU Attacks on modern hashes»: «scrypt at up to ~1MB (misuse)»; slide 19-21
  8. Scrypt — Litecoin Wiki. Дата обращения: 17 июля 2013. Архивировано из оригинала 16 августа 2013 года.

Ссылки

Реализации:

Read other articles:

1314 Puri Beta 1 Halte TransjakartaHalte Puri Beta 1 pada Januari 2024LetakKotaKota TangerangDesa/kelurahanLarangan Utara, LaranganKodepos15154AlamatJalan Puri Beta 1Koordinat6°13′50″S 106°43′34″E / 6.230497°S 106.726007°E / -6.230497; 106.726007Koordinat: 6°13′50″S 106°43′34″E / 6.230497°S 106.726007°E / -6.230497; 106.726007Desain HaltePintu masukMelalui ramp di Perumahan Puri Beta 1Gerbang tarifYaInformasi lainPemilikPT T…

Grand Prix de Tennis de Toulouse 1990 Sport Tennis Data 1º ottobre – 6 ottobre Edizione 9a Superficie Cemento Campioni Singolare Jonas Svensson Doppio Neil Broad / Gary Muller 1989 1991 Il Grand Prix de Tennis de Toulouse 1990 è stato un torneo di tennis giocato sul cemento. È stata la 9ª edizione del Grand Prix de Tennis de Toulouse, che fa parte della categoria World Series nell'ambito dell'ATP Tour 1990. Il torneo si è giocato a Tolosa in Francia, dall'1 al 6 ottobre 1990. Indice 1 Cam…

Pour les articles homonymes, voir Comté de McHenry. Cet article est une ébauche concernant le Dakota du Nord. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Comté de McHenry(McHenry County) Le palais de justice de Towner, siège du comté. Administration Pays États-Unis État Dakota du Nord Chef-lieu Towner Démographie Population 5 345 hab. (2020) Densité 1,1 hab./km2 Géographie Coordonnées 4…

  「俄亥俄」重定向至此。关于其他用法,请见「俄亥俄 (消歧义)」。 俄亥俄州 美國联邦州State of Ohio 州旗州徽綽號:七葉果之州地图中高亮部分为俄亥俄州坐标:38°27'N-41°58'N, 80°32'W-84°49'W国家 美國加入聯邦1803年3月1日,在1953年8月7日追溯頒定(第17个加入联邦)首府哥倫布(及最大城市)政府 • 州长(英语:List of Governors of {{{Name}}}]]) • …

本條目存在以下問題,請協助改善本條目或在討論頁針對議題發表看法。 此條目的引用需要清理,使其符合格式。参考文献应符合正确的引用、脚注及外部链接格式。 此條目可参照英語維基百科相應條目来扩充,此條目在對應語言版為高品質條目。 (2023年8月17日)若您熟悉来源语言和主题,请协助参考外语维基百科扩充条目。请勿直接提交机械翻译,也不要翻译不可靠、低品…

此條目可能包含不适用或被曲解的引用资料,部分内容的准确性无法被证實。 (2023年1月5日)请协助校核其中的错误以改善这篇条目。详情请参见条目的讨论页。 各国相关 主題列表 索引 国内生产总值 石油储量 国防预算 武装部队(军事) 官方语言 人口統計 人口密度 生育率 出生率 死亡率 自杀率 谋杀率 失业率 储蓄率 识字率 出口额 进口额 煤产量 发电量 监禁率 死刑 国债 外…

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Certaines informations figurant dans cet article ou cette section devraient être mieux reliées aux sources mentionnées dans les sections « Bibliographie », « Sources » ou « Liens externes » (15 juillet 2019). Vous pouvez améliorer la vérifiabilité en associant ces informations à des références à l'aide d'appels de notes. Un gène suppresseur de tumeurs ou encore anti-onc…

1981 studio album by Gil EvansWhere Flamingos FlyStudio album by Gil EvansReleased1981Recorded1971GenreJazzLength46:07LabelArtists HouseProducerJohn SimonGil Evans chronology Live at the Public Theater (New York 1980)(1980, 1981) Where Flamingos Fly(1981) British Orchestra(1983) Where Flamingos Fly is an album by jazz composer, arranger, conductor and pianist Gil Evans, originally recorded in 1971 for Capitol Records but not released until 1981 as an LP on the Artists House label. It was…

صاحب السمو الملكي الأمير عبد الله بن بندر بن عبدالعزيز آل سعود وزير الحرس الوطني السابع تولى المنصب27 ديسمبر 2018 العاهل سلمان بن عبد العزيز آل سعود خالد آل مقرن   نائب أمير منطقة مكة المكرمة في المنصب22 أبريل 2017 – 27 ديسمبر 2018 العاهل سلمان بن عبد العزيز آل سعود   بدر بن سلطان …

200 років Миколаївській астрономічній обсерваторії УкраїнаНомінал 5 гривеньМаса 16,54 гДіаметр 35,0 ммГурт рифленийМетал нейзильберРоки карбування 2021Аверс Реверс «200 ро́ків Микола́ївській астрономі́чній обсервато́рії» — пам'ятна монета номіналом 5 гривень, випущ…

Molly PiconPicon dalam Car 54, Where Are You? (1962)Lahir(1898-02-28)28 Februari 1898New York City, Amerika SerikatMeninggal5 April 1992(1992-04-05) (umur 94)Lancaster, Pennsylvania, Amerika SerikatMakamMount Hebron Cemetery, New York CityPekerjaanPemeranTahun aktif1904–1984Suami/istriJacob Kalich ​ ​(m. 1919; wafat 1975)​ Molly Picon (bahasa Yiddi: מאָלי פּיקאָן; nama lahir Malka Opiekun; 28 Februari 1898 –&#…

日本 > 兵庫県 > 神戸市 > 灘区 > 新在家南町 新在家南町(しんざいけみなみまち)は兵庫県神戸市灘区の町名の一つで、同区東部旧・新在家村域の南部(国道43号および阪神高速道路3号神戸線以南)に相当する。 地理 東は浜田町と、南から南東は運河を隔て神戸東部第一工区の灘浜東町と、西は都賀川を隔て大石南町と、北西の一点で大石北町と、…

Prime minister Najib Razak at the launch of Barisan Nasional's manifesto in 2013. This article is part of a series on thePolitics ofMalaysia Head of State Yang di-Pertuan Agong Ibrahim Iskandar Conference of Rulers Legislature Parliament of Malaysia 15th Parliament Senate (Dewan Negara) President Wan Junaidi Tuanku Jaafar House of Representatives (Dewan Rakyat) Speaker Johari Abdul Leader of the Government Anwar Ibrahim Leader of the Opposition Hamzah Zainudin Executive Cabinet Prime Minister An…

Place in Lower Austria, AustriaZwentendorf an der DonauNuclear power station at Zwentendorf Coat of armsZwentendorf an der DonauLocation within AustriaCoordinates: 48°20′33″N 15°54′50″E / 48.34250°N 15.91389°E / 48.34250; 15.91389CountryAustriaStateLower AustriaDistrictTullnGovernment • MayorMarion Török (SPÖ)Area[1] • Total53.9 km2 (20.8 sq mi)Elevation182 m (597 ft)Population (2018-01-01)[2…

This article is about the small sea stack north of the Scottish mainland. For the larger nearby island, see Sule Skerry. For the island north of the Hebrides, see Sula Sgeir. Sule StackMeaning of nameGannet Stack, from sùlaire (Scottish Gaelic for northern gannet), and Stack (originally Norse) Norse[1]LocationSule StackSule Stack shown within ScotlandOS grid referenceHX561179Coordinates59°01′N 4°31′W / 59.02°N 4.51°W / 59.02; -4.51Physical geographyIsland…

National Security Aviation Group in the Philippines 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 may need to be rewritten to comply with Wikipedia's quality standards. You can help. The talk page may contain suggestions. (August 2020) This article's lead section may be too short to adequately summarize the key points. Please consider expanding the lead to provide an accessibl…

Voce principale: Guerra di secessione americana. Dipinto di Louis Prang che ritrae la battaglia della baia di Mobile. V · D · MGuerra di secessione americanaTeatro OrientaleCampagna peninsulare – Campagna della Valle – Virginia del Nord – Maryland – Manassas – Fredericksburg – Chancellorsville – Gettysburg – Bristoe – Mine Run – Campagna terrestre– Bermuda Hundred – Shenandoah – Petersburg –…

В Википедии есть статьи о других людях с такой фамилией, см. Чернова. Анна Юракова Общая информация Полное имя Анна Андреевна Юракова Прозвище Аня Гражданство  Россия Дата рождения 7 сентября 1992(1992-09-07) (31 год) Место рождения Калуга, Россия Специализация конькобежный спор…

Swiss freestyle wrestler Fritz HagmannBorn(1901-03-28)28 March 1901Died14 December 1974(1974-12-14) (aged 73) Medal record Men's freestyle wrestling Representing  Switzerland Olympic Games 1924 Paris Middleweight Fritz Hagmann (28 March 1901 – 14 December 1974) was a Swiss freestyle wrestler and Olympic champion. He won a gold medal at the 1924 Summer Olympics in Paris.[1][2] Beside that he was a successful Schwinger and member of the Schwingklub Winterthur. But he co…

Battaglia della Foresta di Teutoburgoparte delle Guerre romano-germanicheL'armata romana di Varo sorpresa nella foresta di Teutoburgo (oggi Kalkriese) nel dipinto Furor Teutonicus di Paja JovanovicData8-11 settembre 9 d.C. LuogoForesta di Teutoburgo (attuale Kalkriese) EsitoDecisiva vittoria dei Germani, fine dell'espansione romana oltre il Reno SchieramentiImpero romanoTribù germaniche: Cherusci Bructeri Catti Marsi ComandantiPublio Quintilio Varo †Arminio Effettivi15 000 legionari e 8&…