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

Иллюстрация принципа работы функции губки
Иллюстрация принципа работы функции губки. Pi — блоки, на которые разделена строка на входе, Zi — блоки на выходе.

В криптографии функция губки (или просто губка) (англ. sponge construction или sponge function) — это класс алгоритмов с конечным внутренним состоянием, на вход которых поступает двоичная строка произвольной длины, и которые возвращают двоичную строку также произвольной длины f:{0,1}n → {0,1}*. Функция губки может использоваться для создания хеш-функций, потоковых и блочных шифров, генераторов псевдослучайных чисел, имеющих произвольную длину входных данных.

Структура

Губка — это итеративная конструкция для создания функции с произвольной длиной на входе и произвольной длиной на выходе на основе преобразований f. Губка имеет внутреннее состояние S — с данными фиксированного размера b (бит). При этом данные разделены на 2 части — первая S1 размера r, а вторая S2 — размера c. Значение r называется битовой скоростью, а значение с — мощностью; b = r + c.

На фазе инициализации блок данных размера b заполняется нулями, а входные данные M разбиваются на блоки размера r. Дальнейшая работа губки производится в 2 этапа:

  • В фазе «впитывания» (absorbing) выполняется операция XOR очередного блока исходного сообщения с первой частью состояния S1 размера r(бит), оставшаяся часть S2 состояния ёмкостью c остается незатронутой. Результат помещается в S1 , а затем состояние S обрабатывается функцией f — многораундовой бесключевой псевдослучайной перестановкой, и так повторяется до исчерпания блоков исходного сообщения.
  • В фазе «выжимания» (squeezing) состояние S подаётся на функцию f, после чего часть S1 подаётся на выход. Эти действия повторяются, пока не будет получена последовательность нужной длины (например, длины хэша).

Последние биты c зависят от входных блоков лишь опосредованно и не выводятся в ходе фазы «выжимания» (squeezing).

Применение

Генератор псевдослучайных чисел, основанный на функции губки

Моделирование ГПСЧ с изменяемыми входными данными

Определим ГПСЧ с изменяемыми исходными данными как объект с состоянием, который поддерживает два типа запросов, в любом порядке:

  • Запрос подачи, feed(σ) — подает исходное значение, состоящее из непустой строки σ ϵ , в состояние ГПСЧ;
  • Запрос принятия, fetch(l) — поручает ГПСЧ вернуть l бит.

Тогда исходный материал (seeding material), подаваемый на вход генератора — это конкатенация σ, полученных во всех запросах подачи.

Неформально требования к ГПСЧ с изменяемыми исходными данными могут быть определены следующим образом:

Во-первых, его выход (то есть ответы на запросы подачи) должен зависеть от всех исходных материалов. Во-вторых, для злоумышленника, не знающего исходный материал, но наблюдавшего часть вывода, должно быть невозможно сделать вывод об оставшейся части выхода.

Определим идеальный ГПСЧ как конструкцию, использующую Случайный оракул

Ответ идеального ГПСЧ с изменяемыми входными данными на запрос принятия

Конструкцию, которую мы определили, можно описать следующим образом. Она сохраняет как состояние последовательность всех запросов подачи и принятия, которые она получила, составляя историю h. При получении запроса подачи feed(σ) она обновляет историю подсоединением этого запроса. При получении запроса принятия fetch(l), она подает случайному оракулу строку, который в свою очередь шифрует историю строкой и возвращает биты от z до z+l-1 своего ответа, где z — число запрашиваемых бит в запросе подачи. Следовательно, конкатенация ответов на запросы подачи — всего лишь ответ случайного оракула на единичный запрос. Это продемонстрировано на рисунке. Назовем эту конструкцию режимом, сохраняющим историю, с функцией шифрования e(h). Определение режима с сохранением истории, следовательно, сходится к определению этой функции шифрования.

Так как выход ГПСЧ должен зависеть от всего полученного исходного материала, шифрующая функция e(h) должна быть инъективна с исходным материалом. Другими словами, для любых двух последовательностей запросов с различным исходным материалом, два отображения e(h) должны быть различны. Мы называем это полнота исходного материала (seed-completeness). В функции шифрования с полным исходным материалом на запрос принятия будут выданы различные ответы на разные входные строки. Отсюда следует, что ГПСЧ возвращает независимые биты.

Таким образом, предлагается следующее определение идеального ГПСЧ с изменяемыми входными данными.

Идеальный ГПСЧ с изменяемыми входными данными — это режим, сохраняющий историю, называемый случайным оракулом, с функцией шифрования e(h) с полным исходным материалом.

Создание ГПСЧ с использованием функции губки

Кажется естественным включить запрос подачи в фазу «впитывания», а запрос принятия в фазу «выжимания». Однако исполнение функции губки имеет только одну фазу впитывания (один вход), за которой следует одна фаза «выжимания» (то есть один выход произвольной длины) и она не может быть использована для производства многократных фаз.

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

При построении функции губки, входное сообщение m ϵ должно быть поделено на блоки из r битов и заполнено. Обозначим, как p(m) функцию, которая делает это, и предположим, что эта функция добавляет только биты после m. Предположим, что мы хотим повторно использовать состояние губки, для которой входной строкой было сообщение m1 и для которой выходные биты были «выжаты» при l>0. Состояние функции губки в этой точке таково, как если бы частичное сообщение m’1 = р(m1) || 0r(⌈l/r⌉-1) было «впитано». Обратите внимание, что нулевые блоки составляют дополнительные итерации из-за фазы сжатия. Перезапуск губки с этой точки означает, что входным будет сообщение m2, для которого m’1 является префиксным.

Чтобы определить ГПСЧ формально, мы должны указать функцию шифрования e(h) с полным исходным материалом, отображающую последовательность запросов подачи и принятия. Выход е(h) используется в качестве входа для функции губки.

На практике идея состоит в том, чтобы не вызвать функцию губки со всей е (h) каждый раз, как получаем запрос принятия. Вместо этого, конструкция использует функцию губки каскадным образом, повторно используя состояние, как описано в разделе 3.2.[где?] Чтобы разрешить повторное использование состояния функции губки е (h) должна быть такой, что если h’ = h || fetch(l) || feed(σ), то p(e(h)) || 0r(⌈l/r⌉-1) — префикс e(h’).

Чтобы связать конструкцию с практической реализацией, опишем для начала конструкцию с двумя ограничениями. Первое ограничение на длину запросов исходного значения. Для фиксированного целого k требуем, чтобы длина исходного материала σв любом запросе подачи feed(σ) была такова, что |p(σ)| = kr. Другими словами, после заполнения, исходный материал покрывает ровно k блоков по r бит. Второе ограничение в том, что первым запросом должен быть запрос подачи.

Конструкция является конструкцией с учетом состояний (stateful), если её состояние состоит из mϵ N бит, принятых с момента последнего запроса подачи. Начнем с нового исполнения функции губки, задаем m = 0. Обозначим как е строку, отображение е(h) запросов, добавленных к истории h.

  • Если пришел запрос fetch(l):

Выполнение производит l выходных битов, «выжимая» их из функции губки. Формально е будет адаптирована во время следующего запроса подачи.

Значение m изменено: m = m + l.

  • Если пришел запрос feed (σ):

Формально этот запрос подачи вызывает запрос к функции губки с е в качестве входных данных. Если это не первый запрос, то е обновлено только до последнего запроса подачи. Таким образом, результаты запросов получения с момента последнего запроса подачи должны быть включены в е, как если бы е ранее «впитывалась». Сначала е становится равной p(e), чтобы имитировать заполнение при переключении на фазу «выжимания» после предыдущего запроса подачи. Тогда ⌈m\r⌉ −1 блоков по r нулей добавляются к e для учета дополнительных вызовов функции f при последующих запросах подачи. Теперь m сбрасывается: m = 0. (Это часть влияет только на е — ничего не должно измениться в выполнении).

Затем «впитывается» σ. Формально это выражается путём добавления σ к е.

Наконец, выполнение переключает функцию губки на фазу «выжимания». Это означает, что «впитанные» данные должна быть заполнены и перестановка f применена к состоянию. (Формально, это не меняет е, так как заполнение по определению выполняется при переключении на фазу отжима).

Ограничение на фиксированный размер запросов подачи не является обязательным и может быть удалено. Для обеспечения переменной длины исходного материала и сохранения полноты исходного материала, должны быть введены некоторые формы заполнения внутри функции шифрования, чтобы убедиться, что границы исходного материала могут быть идентифицированы. Кроме того, придется добавить способ отличать блоки с нулевым исходным материалом от нулевых блоков. Это может быть сделано, например, постановкой 1 в каждый блок, содержащий исходный материал.

Ограничение первого запроса, являющегося запросом подачи, может быть удалено, так как не имеет смысла генерировать псевдослучайные биты без первой подачи исходного материала. Если первый запрос — это принятие, то выполнение сразу заполняет (пустой строкой) вход, переключает функции губки на фазу «выжимания» и производит выходные биты с помощью «выжимания». Формально в следующем запросе подачи, это должно быть учтено в е присваиванием е значения р (пустая строка) ||0r([m=r]-1).

Реализации алгоритма

Примечания

Ссылки

  1. Sponge Functions Ecrypt Hash Workshop 2007.
  2. Хеш-функция Keccak и конструкция Sponge как универсальный криптопримитив
  3. NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition

Read other articles:

PT Smartfren Telecom TbkNama dagangSmartfrenSebelumnyaPT Mobile-8 Telecom Tbk (2002-2011)JenisPerseroan terbatas publikKode emitenIDX: FRENIndustriTelekomunikasiPendahuluPT Komunikasi Selular Indonesia (Komselindo)PT Telekomindo Selular Raya (Telesera)PT Metro Selular Nusantara (Metrosel)Operasional PT Smart Telecom (Smart)Didirikan2 Desember 2002KantorpusatJl. Haji Agus Salim 45, MentengSebelumnya:Menara Kebon Sirih Lt. 18 Jl. Kebon Sirih 17-19, Kebon Sirih[1]Jakarta, IndonesiaTokohk...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Maret 2023. Cellofan – med døden til følgeSutradaraEva IsaksenDitulis olehLeidulv RisanPemeranAndrine SætherSverre Anker OusdalPenata musikBjörn J:son LindhTanggal rilis 28 Agustus 1998 (1998-08-28) Durasi90 menitNegaraNorwegiaBahasaNorwegia Cellofa...

 

Eric LindenLinden dalam Born to Gamble (1935)LahirEric Linden(1909-09-15)15 September 1909New York City, Amerika SerikatMeninggal14 Juli 1994(1994-07-14) (umur 84)Pantai Laguna Selatan, California, Amerika SerikatTahun aktif1928-1941Suami/istriJoanna Brown ​ ​(m. 1955; bercerai 1977)​Anak3 Eric Linden (15 September 1909 – 14 Juli 1994) adalah seorang pemeran asal Amerika Serikat, yang utamanya aktif pada 1930an. Masa m...

Goodnight MommyPoster rilis teatrikalSutradara Veronika Franz Severin Fiala ProduserUlrich SeidlDitulis oleh Veronika Franz Severin Fiala PemeranSusanne WuestElias SchwarzLukas SchwarzPenata musikOlga NeuwirthSinematograferMartin GschlachtPenyuntingMichael PalmPerusahaanproduksiUlrich Seidl Film Produktion GmbHDistributorStadtkino VerleihTanggal rilis 30 Agustus 2014 (2014-08-30) (Venice) 08 Januari 2015 (2015-01-08) (Austria) Durasi100 menit[1]NegaraAustriaBah...

 

County in Arkansas, United States County in ArkansasLittle River CountyCountyLittle River County Courthouse in AshdownLocation within the U.S. state of ArkansasArkansas's location within the U.S.Coordinates: 33°41′53″N 94°13′18″W / 33.698055555556°N 94.221666666667°W / 33.698055555556; -94.221666666667Country United StatesState ArkansasFoundedMarch 5, 1867Named forLittle River[1]SeatAshdownLargest cityAshdownArea • Total565...

 

Questa voce sull'argomento calciatori danesi è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Tommy Bechmann Nazionalità  Danimarca Altezza 183 cm Peso 81 kg Calcio Ruolo Attaccante Termine carriera 9 gennaio 2017 Carriera Squadre di club1 2002-2004 Esbjerg63 (32)2004-2008 Bochum82 (13)2008-2011 Friburgo49 (8)2011-2017 SønderjyskE145 (33) Nazionale 2001 Danimarca U-191 (0)2022...

Neighbourhood-cum-Road in Kolkata, India Neighbourhood in Kolkata in West Bengal, IndiaPark StreetNeighbourhood in Kolkata (Calcutta)Park Street near Chowringhee Road crossingCountryIndiaStateWest BengalDistrictKolkataCityKolkataMetro StationPark StreetKMC wards61, 63, 64Government • BodyKolkata Municipal CorporationLanguages • OfficialBengali, EnglishTime zoneUTC+5:30 (IST)PIN700016, 700017Lok Sabha constituencyKolkata DakshinVidhan Sabha constituencyBhabanipur and B...

 

Artikel ini memiliki beberapa masalah. Tolong bantu memperbaikinya atau diskusikan masalah-masalah ini di halaman pembicaraannya. (Pelajari bagaimana dan kapan saat yang tepat untuk menghapus templat pesan ini) Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Institut Ilmu Sosial dan Ilm...

 

Serbian folk singer For the American pornographic actress, see Stoya. StojaСтојаBirth nameStojanka NovakovićBorn (1972-06-04) 4 June 1972 (age 51)Perlez, SR Serbia, SFR YugoslaviaGenresFolk, pop-folk, turbo-folkYears active1997–presentLabels Lazarević Produktion Grand Production BN Music IDJ Balkan Star Signature Musical artist Stoja Novaković[note 1] (Serbian Cyrillic: Стоја Новаковић; born 4 June 1972), known mononymously as Stoja (Serbian Cyrillic: Ст...

Palestinian settlement in Beirut, Lebanon Shatila in 2019 Shatila in 2003 The Shatila refugee camp (Arabic: مخيم شاتيلا), also known as the Chatila refugee camp, is a settlement originally set up for Palestinian refugees in 1949. It is located in southern Beirut, Lebanon and houses more than 9,842 registered Palestine refugees.[1] Since the eruption of the Syrian Civil War, the refugee camp has received a large number of Syrian refugees. In 2014, the camp's population was es...

 

Au Wai Lun Informasi pribadiNama lengkap Au Wai LunTanggal lahir 14 Agustus 1971 (umur 52)Tempat lahir Hong KongTinggi 1,81 m (5 ft 11+1⁄2 in)Posisi bermain PenyerangInformasi klubKlub saat ini EasternNomor 7Karier senior*Tahun Tim Tampil (Gol)1988–1989 Tin Tin (0)1989–1990 Eastern (3)1990–1993 Ernest Borel (13)1993–1999 South China (52)1999 Rangers (HKG) 114 (46)1999–2007 South China 11 (10)2009– Eastern (17)Tim nasional1989–2005 Hong Kong 50 (20)1992...

 

Katie Mitchell nel 2016 Katie Mitchell, vero nome Kathrina Jane Mitchell (Reading, 23 settembre 1964), è una regista teatrale inglese. Indice 1 Biografia 2 Premio Europa per il Teatro 3 Onorificenze 4 Note 5 Altri progetti 6 Collegamenti esterni Biografia Nata e cresciuta a Reading, Katie Mitchell ha studiato letteratura inglese al Magdalene College dell'Università di Oxford prima di cominciare a lavorare dietro le quinte del King's Head Theatre di Islington. Successivamente ha lavorato com...

Maersk Air IATA ICAO Kode panggil DM DAN Maerskair [1] Didirikan1969Berhenti beroperasi2005PenghubungBandar Udara Kopenhagen, DenmarkArmada18SloganFly as you likeKantor pusatDragør Municipality, DenmarkTokoh utamaMærsk Mc-Kinney MøllerSitus webMaersk-air.com Maersk Air adalah nama maskapai penerbangan Denmark. Dengan kode IATA DM dan kode ICAO DAN. Referensi ^ Airline Codes retrieved 3 December 2006 Pranala luar Wikimedia Commons memiliki media mengenai Maersk Air. Maersk Air (Arch...

 

Geographic and cultural region of Tennessee, United States Grand Division in Tennessee, United StatesWest TennesseeGrand Division Clockwise, from top left: The Memphis Pyramid, Graceland, Beale Street, Pinson Mounds, Shiloh National Military Park, Reelfoot LakeNickname(s): West TN, West Tenn.The counties of Tennessee highlighted in red that are designated part of West Tennessee.Country United StatesState TennesseeLargest cityMemphisArea • Land27,600 km2 (10,650...

 

National association football team Uzbekistan U23Nickname(s)White WolvesAssociationUzbekistan Football AssociationConfederationAFC (Asia)Head coachTimur KapadzeCaptainJasurbek JaloliddinovHome stadiumJar StadiumFIFA codeUZB First colours Second colours First international Kyrgyzstan 1–5 Uzbekistan (Bishkek, Kyrgyzstan; 20 May 1995)Biggest win Uzbekistan 10–0 Hong Kong (Tashkent, Uzbekistan; 9 September 2023)Biggest defeat Iran 6–1 Uzbekistan (Tehran, Iran; ...

American baseball player (born 1987) Baseball player Drew StorenStoren with the Washington Nationals in 2015PitcherBorn: (1987-08-11) August 11, 1987 (age 36)Indianapolis, Indiana, U.S.Batted: SwitchThrew: RightMLB debutMay 17, 2010, for the Washington NationalsLast MLB appearanceSeptember 1, 2017, for the Cincinnati RedsMLB statisticsWin–loss record29–18Earned run average3.45Strikeouts417Saves99 Teams Washington Nationals (2010–2015) Toronto Blue Jays...

 

العلاقات الكازاخستانية الكورية الشمالية كازاخستان كوريا الشمالية   كازاخستان   كوريا الشمالية تعديل مصدري - تعديل   العلاقات الكازاخستانية الكورية الشمالية هي العلاقات الثنائية التي تجمع بين كازاخستان وكوريا الشمالية.[1][2][3][4][5] مقارنة ب...

 

Feeding livestock on forage This article is about a method of feeding in animal husbandry. For herbivory in animal behaviour, see Grazing (behaviour). For the human eating pattern, see Grazing (human eating pattern). For Christian hermits, see Grazers (Christianity). Dairy cattle grazing in Germany In agriculture, grazing is a method of animal husbandry whereby domestic livestock are allowed outdoors to free range (roam around) and consume wild vegetations in order to convert the otherwise in...

珠海公交26路线Zhuhai Bus Route 26概覽營運公司珠海公交巴士有限公司所屬車廠吉大分公司香洲分公司使用車輛厦门金龙XMQ6119G 11米郑州宇通ZK6108HGC 10米郑州宇通ZK6100HGA 10米线路信息起點站九洲港途經九洲城、百货公司、香洲总站、一中終點站普陀寺线路长度15.3公里运行周期50分鐘起點站服務時間06:30-20:55终点站运营时间06:40-21:05班次頻率约7分钟一班票价人民币1元(空调车) �...

 

Tómas Ingi TómassonNazionalità Islanda Calcio RuoloAllenatore (ex attaccante) Termine carriera2003 CarrieraSquadre di club1 1986-1990 ÍBV Vestmannæyja66 (34)1990-1991→  FC Berlino4 (3)1991-1992 ÍBV Vestmannæyja25 (9)1993-1994 KR Reykjavík34 (14)1995 Grindavík15 (7)1996-1997 Raufoss27 (11)1998 Þróttur18 (14)1999-2000 Aarhus37 (5)2000 ÍBV Vestmannæyja6 (1)2000 Aarhus3 (2)2001-2002 ÍBV Vestmannæyja29 (12)2003 KFS4 ...