Lätt kryptografisk hashfunktion
Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från
versionen som granskades den 20 oktober 2020; verifiering kräver
1 redigering .
Hashfunktionen för lättviktskryptografi är en kryptografiskt stark hashfunktion som används i "lättvikts" kryptografi [1] . För närvarande har relevansen av sådana hashfunktioner ökat dramatiskt på grund av möjligheten att använda dem inom många verksamhetsområden (från RFID till Internet of things ) och i skärningspunkten mellan discipliner ( Blockchain och IoT ) . Med tanke på specifikationerna för användningen av dessa hashfunktioner är de föremål för ytterligare krav . De flesta moderna hashfunktioner använder Merkle-Damgor-strukturen och svampfunktionen som bas .
Begreppet lättviktskryptografi
Lättviktskryptering är en del av kryptografi som överväger algoritmer för enheter som inte har tillräckliga resurser för att implementera befintliga chiffer , hashfunktioner , elektroniska signaturer , etc. [2] "Lättvikts"-kryptering har blivit extremt relevant för närvarande på grund av spridningen av paradigmet smarta hem , där många enheter av liten storlek, med begränsad datorkraft, begränsat minne och låg strömförbrukning kommunicerar med varandra och utbyter konfidentiell information om hyresgästen, för att utföra sina uppgifter [3] [4] . Också av särskilt intresse är algoritmer för RFID- taggar [5] . För att förhindra angripare från att använda användarens privata information krävs särskild utveckling och optimering av algoritmer som kan fungera med begränsade resurser och ge en adekvat säkerhetsnivå [4] .
Hash-funktioner
Applikation
För att adressaten ska försäkra sig om att ett meddelande skickats till honom från den verkliga adressaten skickas det tillsammans med en elektronisk signatur. I praktiken är det inte meddelandet som signeras, utan dess hashsumma, som avsevärt kan minska beräkningsresurserna för att skapa en signatur (eftersom hashsumman vanligtvis är storleksordningar mindre än nyckeln) och öka kryptografisk styrka (en angripare) kommer inte att kunna ta reda på originaldata endast från hashen) [6] . Hash-funktioner används i blockchain-teknik för att bestämma blocket som kommer att läggas till den allmänna kedjan. Till exempel: för att lägga till ett nytt block till Bitcoin -plattformen måste du hitta en SHA-256- hashsumma som är mindre än ett visst målnummer. Nästa skapade block kommer att ha hash för föregående [7] . Dessutom kan hashfunktioner, i synnerhet hashfunktionerna för lättviktskryptografi, tillämpas i skärningspunkten mellan discipliner. Till exempel: de används i LSB blockchain, som är designad för användning i Internet of things [8] .
Dessutom används hash-summor vid kontroll av lösenord. Om operativsystem lagrade lösenord i filer, skulle crackers som använder obehörig åtkomst kunna få tillgång till dem, och att extrahera hashen skulle i sin tur inte ge dem någonting [9] .
Krav
De grundläggande kraven för lättviktskryptografiska hashfunktioner är desamma som för vanliga kryptografiska hashfunktioner [10] :
- Motstånd mot återställandet av den första förbilden - i närvaro av en hashsumma , oförmågan att beräkna
![{\displaystyle H(m)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cfd3d7057fc840a3a5555eb6d0a45df49f111ada)
![m](https://wikimedia.org/api/rest_v1/media/math/render/svg/0a07d98bb302f3856cbabc47b2b9016692e3f7bc)
- Motstånd mot restaurering av de andra prototyperna - i närvaro av omöjligheten att hitta , så att
![m](https://wikimedia.org/api/rest_v1/media/math/render/svg/0a07d98bb302f3856cbabc47b2b9016692e3f7bc)
![n](https://wikimedia.org/api/rest_v1/media/math/render/svg/a601995d55609f2d9f5e233e36fbe9ea26011b3b)
![{\displaystyle H(n)=H(m)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cf442c5f62c0e1811764d116e232df8dd84f766a)
- Kollisionsmotstånd är omöjligheten att hitta och sådant att [11]
![m](https://wikimedia.org/api/rest_v1/media/math/render/svg/0a07d98bb302f3856cbabc47b2b9016692e3f7bc)
![n](https://wikimedia.org/api/rest_v1/media/math/render/svg/a601995d55609f2d9f5e233e36fbe9ea26011b3b)
![{\displaystyle H(n)=H(m)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cf442c5f62c0e1811764d116e232df8dd84f766a)
Med hänsyn till kapaciteten hos de datorenheter som algoritmerna kommer att produceras på, såväl som de uppgifter som måste utföras, läggs speciella krav till de grundläggande kraven:
- Låg energiförbrukning
- Liten intern tillståndsstorlek [2]
Attacker på hashfunktioner
- Attack av "födelsedagar" - används för att söka efter en kollision av det andra slaget , utnyttjar paradoxen med födelsedagar . För en framgångsrik attack bör antalet hashfunktionsanrop vara ungefär , och för kvantdatorer [12]
![{\displaystyle 2^{\frac {n}{2}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/55993043da49805ef050bf2e468740fa450214b5)
![{\displaystyle 2^{\frac {n}{3))}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cc993a4b8836c3ec411a7a5aa4d58a5f159ee2c2)
- Cube attack - effektiv för attacker på hashfunktioner och chiffer som använder LFSR [13]
- Linjär attack ( engelsk Linear cryptanalysis ) - designad för hashfunktioner med block- och streamchiffer [14]
- Differentiella attacker ( engelska Differential cryptanalysis ) - effektiv för hashfunktioner med blockchiffer [15]
- Bumerangattacken är en avancerad differentialattack som framgångsrikt har tillämpats på hashfunktioner [16] . Så att till exempel hitta SHA-0- kollisioner med denna attack tog det bara en timme på en vanlig PC [17]
- Meddelandeförlängande attack - används för hashfunktioner baserade på Merkle-Damgor-strukturen [18] . Kärnan i attacken är att lägga till nya bitar i slutet av meddelandet. Sårbara funktioner inkluderar: MD5 och SHA-1 [19] [20]
- Zhus multikollisionsattack [21] syftar till hashfunktioner som använder svampfunktionen som bas , vilket är vanligt bland lättviktskrypteringsfunktioner.
- Rebound attack - designad för AES-liknande algoritmer [22]
- Rotationskryptanalys - skapad för att knäcka hashfunktioner baserade på ARX ( modulo comparison - bit shift - XOR ) [23]
Typer av hash
Huvudidé
Anta att vi får en initialiseringsvektor : (fast och öppen), en komprimeringsfunktion som mappar till och ett meddelande , där ett block av bitar, om inte en multipel av , så fyller vi det sista blocket med 1 och nollor [18] . Till exempel: om
![IV](https://wikimedia.org/api/rest_v1/media/math/render/svg/05e02bc314180f8770fd135cd0e80ac4835a676d)
![\{0,1\}^{n}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3cc07e486d73e18382d0d8d205149f0923ed0586)
![h](https://wikimedia.org/api/rest_v1/media/math/render/svg/b26be3e694314bc90c3215047e4a2010c6ee184a)
![{\displaystyle \{0,1\}^{n}\ gånger \{0,1\}^{k))](https://wikimedia.org/api/rest_v1/media/math/render/svg/0c52297f4bbcbc3bdb82649d122ad93e383604a3)
![\{0,1\}^n](https://wikimedia.org/api/rest_v1/media/math/render/svg/3cc07e486d73e18382d0d8d205149f0923ed0586)
![{\displaystyle m=(m_{0},m_{1},...,m_{L-1})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cb320b7046fe128bc8a456f657a855ec6cfd6fc1)
![mi](https://wikimedia.org/api/rest_v1/media/math/render/svg/95ec8e804f69706d3f5ad235f4f983220c8df7c2)
![k](https://wikimedia.org/api/rest_v1/media/math/render/svg/c3c9a2c7b599b37105512c5d570edc034056dd40)
![m](https://wikimedia.org/api/rest_v1/media/math/render/svg/0a07d98bb302f3856cbabc47b2b9016692e3f7bc)
![k](https://wikimedia.org/api/rest_v1/media/math/render/svg/c3c9a2c7b599b37105512c5d570edc034056dd40)
,
sedan matar vi blocket som indata:
![2](https://wikimedia.org/api/rest_v1/media/math/render/svg/901fc910c19990d0dbaaefe4726ceb1a4e217a0f)
,
där en läggs till för att undvika kollisioner. Nu kan vi definiera hashfunktionen :
![H](https://wikimedia.org/api/rest_v1/media/math/render/svg/75a9edddcca2f782014371f75dca39d7e13a9c1b)
Förbättrad algoritm
För att förbättra skyddet mot attacker baserat på utvidgningen av inmatningsmeddelandet kan du lägga till ett nytt block, som kommer att registrera meddelandets längd [18] . I det här fallet blir det:
Det finns också en optimering som gör att du kan spara minnesresurser (vilket är viktigt för lättviktskrypteringsuppgifter): om det finns tillräckligt med utrymme i det sista blocket för att registrera meddelandelängden, kommer det att skrivas där:
Svampfunktionen används flitigt i kryptografi, den används för att skapa algoritmer för PRNG [24] , stream- och blockchiffer och hashfunktioner [25] .
Huvudidé
Storlekssvampen kan delas upp i 2 delar: bithastighet och kraft . Vid initiering återställs det interna tillståndet för svampen till noll; meddelandet är utfyllt med nollor så att dess storlek är en multipel av .
![b](https://wikimedia.org/api/rest_v1/media/math/render/svg/f11423fbb2e967f986e36804a8ae4271734917c3)
![r](https://wikimedia.org/api/rest_v1/media/math/render/svg/0d1ecb613aa2984f0576f70f86650b7c2a132538)
![c](https://wikimedia.org/api/rest_v1/media/math/render/svg/86a67b81c2de995bd608d5b2df50cd8cd7d92455)
![m](https://wikimedia.org/api/rest_v1/media/math/render/svg/0a07d98bb302f3856cbabc47b2b9016692e3f7bc)
![r](https://wikimedia.org/api/rest_v1/media/math/render/svg/0d1ecb613aa2984f0576f70f86650b7c2a132538)
Följande är stegen:
![2](https://wikimedia.org/api/rest_v1/media/math/render/svg/901fc910c19990d0dbaaefe4726ceb1a4e217a0f)
- Absorption
- De första bitarna i det interna tillståndet ersätts av resultatet av XOR-operationen av dessa bitar och nästa block i det ursprungliga meddelandet
![r](https://wikimedia.org/api/rest_v1/media/math/render/svg/0d1ecb613aa2984f0576f70f86650b7c2a132538)
- Det interna tillståndet hanteras av permutationsfunktionen
- Klämning
- De första bitarna av svampens inre tillstånd läses
![r](https://wikimedia.org/api/rest_v1/media/math/render/svg/0d1ecb613aa2984f0576f70f86650b7c2a132538)
- Det interna tillståndet hanteras av permutationsfunktionen [24] [25]
P-svamp och T-svamp
P(permutation)-svamp och T(transformational)-svamp är svampar som använder slumpmässig permutation respektive PRNG för att uppdatera sitt interna tillstånd. I artikeln där svampfunktionerna introducerades visades det att svampar med effekt , bithastighet och storleksvektor , som tar emot meddelanden av längd , är sådana att för olika attacker i genomsnitt krävs följande antal uppdateringsfunktionsanrop. (tvåpotenser ges): [26] :
![c](https://wikimedia.org/api/rest_v1/media/math/render/svg/86a67b81c2de995bd608d5b2df50cd8cd7d92455)
![r](https://wikimedia.org/api/rest_v1/media/math/render/svg/0d1ecb613aa2984f0576f70f86650b7c2a132538)
![n](https://wikimedia.org/api/rest_v1/media/math/render/svg/a601995d55609f2d9f5e233e36fbe9ea26011b3b)
![{\displaystyle m<2^{\frac {c}{2))}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1bb6161887ae64e59d75ae98d88e17a121addffd)
Svamp
|
Första prototypen
|
Andra prototypen
|
kollision
|
Att hitta en cykel
|
T-svamp
|
|
|
|
|
P-svamp
|
|
|
|
|
JH Sponge
JH-svampen heter så eftersom den i struktur liknar JH- hashfunktionen .
Hennes absorptionsstadium består av tre delar:
- De första bitarna i det interna tillståndet ersätts av resultatet av XOR-operationen av dessa bitar och nästa block i det ursprungliga meddelandet
![r](https://wikimedia.org/api/rest_v1/media/math/render/svg/0d1ecb613aa2984f0576f70f86650b7c2a132538)
- Det interna tillståndet hanteras av permutationsfunktionen
- De sista bitarna i det interna tillståndet ersätts av resultatet av XOR-operationen av dessa bitar och nästa block i det ursprungliga meddelandet [27]
![r](https://wikimedia.org/api/rest_v1/media/math/render/svg/0d1ecb613aa2984f0576f70f86650b7c2a132538)
Exempel på hashfunktioner i lättviktskryptografi
GLUON
GLUON är en hashfunktion som använder en T-svamp baserad på X-FCSR-v2 och F-FCSR-H-v3 [28] mjukvarubaserade streamchiffer : svampens interna tillstånd vadderas och laddas in i FCSR , vilket synkroniseras i en fast tidsperiod. Sedan läggs vissa FCSR-celler till modulo 2 för att bilda det första ordet i nästa interna tillstånd, FCSR synkroniseras, samma ord läggs till modulo 2 för att bilda det andra ordet i nästa interna tillstånd, och så vidare.
Funktionen har en hög kryptografisk styrka. Till exempel: förbildsattacken har i allmänhet komplexitet , där är storleken på matrisen (som definierar FCSR ), och är storleken på ordet som matas till FCSR.
![{\displaystyle 2^{\frac {3\omega r}{2))}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2b617fbe65ebdfb137b636eaecc6a8eaab8d72b3)
![{\displaystyle \omega \times \omega }](https://wikimedia.org/api/rest_v1/media/math/render/svg/1982b5f82f795ffef6e49b5f08db982ce0c77749)
![T](https://wikimedia.org/api/rest_v1/media/math/render/svg/ec7200acd984a1d3a3d7dc455e262fbe54f7f6e0)
En egenskap hos GLUON-implementeringen är att data i FCSR inte skrivs sekventiellt utan parallellt, vilket avsevärt ökar exekveringshastigheten. Dessutom har adderaren (elementet som utför tillägget ) , som används i FCSR , optimerats enligt följande :
![{\displaystyle s=(a\oplus b)\oplus c}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0537e963039265e312115e0a86b500889740861c)
![{\displaystyle c=(ab)\oplus (a\oplus b).c}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4d5545af1d97dfd5a2e5306332f6358b6172201e)
![.](https://wikimedia.org/api/rest_v1/media/math/render/svg/1e44e5c7036d244e546db1167ed820d947fcd63a)
Uppdateringsfunktionen för GLUON-64 är flervärdig, och dess beteende skiljer sig mycket från PRNG .
QUARK
QUARK är en hashfunktion som använder en P-svamp med en hårdvaruorienterad permutation. Det implementerades under påverkan av lättviktsblockchiffrorna KTANTAN [30] och KATAN [30] och det hårdvaruorienterade strömchifferet Grain [31] . Den minsta versionen (136 bitars hash) kallas U-QUARK, den medium (176 bitars) D-QUARK och den längsta (256 bitars) S-QUARK.
Uppdateringsfunktionen mappar vektorn till , laddar varje halva i ett separat NFSR ( Nolinear -feedback shift register ) av längd och itererar sedan över detta . NFSR är relaterade till varandra och till LFSR med liten längd . Funktionerna och är booleska funktioner valda på grund av deras icke-linjäritet och algebraiska komplexitet . och är desamma för alla versioner och är lånade från Grain-v1, men bestäms från fall till fall.
![{\displaystyle \{0,1\}^{b))](https://wikimedia.org/api/rest_v1/media/math/render/svg/d8bcae634e5c11a32a38222ff6ec78a2fa2c52cf)
![{\displaystyle {\frac {b}{2))}](https://wikimedia.org/api/rest_v1/media/math/render/svg/180cc9bbab011340af1bea69e624b7d5977dcc2a)
![4b](https://wikimedia.org/api/rest_v1/media/math/render/svg/5e50ee9c66728016cbaf26675571005c77cca130)
![{\displaystyle \log(4b)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/be602c8755f6e2eb5d88bd8f7a9bf6fdd6d512af)
![f](https://wikimedia.org/api/rest_v1/media/math/render/svg/132e57acb643253e7810ee9702d9581f159a1c61)
![g](https://wikimedia.org/api/rest_v1/media/math/render/svg/d3556280e66fe2c0d0140df20935a6f057381d77)
![h](https://wikimedia.org/api/rest_v1/media/math/render/svg/b26be3e694314bc90c3215047e4a2010c6ee184a)
![f](https://wikimedia.org/api/rest_v1/media/math/render/svg/132e57acb643253e7810ee9702d9581f159a1c61)
![g](https://wikimedia.org/api/rest_v1/media/math/render/svg/d3556280e66fe2c0d0140df20935a6f057381d77)
![h](https://wikimedia.org/api/rest_v1/media/math/render/svg/b26be3e694314bc90c3215047e4a2010c6ee184a)
Det specifika med QUARK-implementeringen är att den inte innehåller mellanvärden för svampfunktionen, som kräver ytterligare element för att lagra dem. Med andra ord, efter permutering av tillståndsvärden skrivs värdena inte till nästa tillstånd, utan matas omedelbart till permutationsfunktionen, med de första bitarna XORed med meddelandet [32] .
![r](https://wikimedia.org/api/rest_v1/media/math/render/svg/0d1ecb613aa2984f0576f70f86650b7c2a132538)
Den har hög kryptografisk styrka. Data om motstånd mot olika attacker ges nedan [32] :
Svårigheter att hitta en framgångsrik attack:
Kollisioner
|
Första prototypen
|
Andra prototypen
|
|
|
|
Denna hashfunktion har en allmänt tillgänglig implementering skriven i C .
SipHash-2-4
SipHash har en ARX-struktur som påverkades av BLAKE och Skein . Den tillhandahåller en familj av mappningar i sig och är avsedd att användas som en MAC eller i hashtabeller. Den har en liknande struktur som JH som SPN-Hash och använder utfyllnad som tar hänsyn till längden på meddelandet också. Det består dock helt enkelt av att lägga till en byte med en meddelandelängd modulo 256. SipHash gör inte anspråk på att vara kollisionsbeständig, och uppenbarligen inte på grund av den lilla storleken på hashsumman.
![{\displaystyle \{0,1\}^{*}\högerpil \{0,1\}^{64}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0b6b0c14cf7173e3e7f44058dce225b8c40e7ce7)
En utmärkande egenskap hos SipHash är att meddelandena är " xored ", inte som i den vanliga svampfunktionen, utan enligt en speciell algoritm:
- Det första meddelandet är xorxat med den sista fjärdedelen av svampen
- Svampen bearbetas av två permutationsfunktioner
- Det första meddelandet läggs igen, men med den första fjärdedelen av svampen, medan det andra meddelandet med det sista
- Svampen bearbetas av två permutationsfunktioner
- Det andra meddelandet korrigeras med den första fjärdedelen av svampen, och det tredje kvartalet korrigeras med 0xFF
Trots att SipHash är baserat på ARX är det inte sårbart för en roterande attack [33] .
Det finns material om användningen av SipHash på github i det offentliga området.
FOTON
PHOTON är en P-svamp baserad på en AES-liknande [34] permutation. För den lägsta säkerhetsinställningen (PHOTON-80/20/16) är bithastigheten under absorption 20 och är 16 under squeeze. Permutationen består av 12 iterationer (för varje säkerhetsparameter) av den nedan beskrivna sekvensen av transformationer utförda på en 4-bitars kvadrat av celler (8 bitar för den största versionen). PHOTON-transportören består av 4 steg:
![{\displaystyle d\times d}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8832c0aa14719499bb50f640be353abb7f37f069)
- Ytterligare konstanter (AddConstants) - ytterligare konstanter väljs för att vara olika för varje iteration, och så att det inte finns någon symmetri mellan kolumner, som i AES liknande arkitekturer (utan detta lager kommer ett ingångsmeddelande med lika kolumner att behålla denna kvalitet efter valfritt antal av iterationer). Ytterligare konstanter kan genereras av det linjära återkopplingsskiftregistret. För hög prestanda är endast den första kolumnen i det interna tillståndet involverad. Efter att konstanterna har genererats läggs de till modulo 2 till varje cell.
- Cellsubstitution (SubCells) - S-blocket appliceras på varje cell. Om cellen har en längd på 4 bitar används PRESENT Sbox SBOXPRE, om 8 bitar - AES Sbox SBOXAES.
- Row shift (ShiftRows) - identisk med AES.
- MixColumnsSerial - Celler behandlas som Galois (eller för den högsta säkerhetsparametern) och varje kolumn multipliceras med en MDS- matris speciellt utformad för effektiv implementering i hårdvara [35] .
![{\displaystyle {\displaystyle GF(2^{4)))))](https://wikimedia.org/api/rest_v1/media/math/render/svg/14f145075af3ac794c7e6519bea12307fac2053c)
![GF(2^{8})](https://wikimedia.org/api/rest_v1/media/math/render/svg/249fe8b7753a547eb2437f80d47848678c96d1a5)
Kryptografiska data:
Svårigheter att hitta en framgångsrik attack:
Kollisioner
|
Första prototypen
|
Andra prototypen
|
|
|
|
Permutationsmetoden som används för att uppdatera svampen ligger nära LED [36] -chifferet, som utvecklades senare av skaparna av PHOTON.
SPONGENT
SPONGENT kan ses som en P-svamp, där permutationen är en modifierad version av PRESENT-blockchifferet.
Antalet iterationer av en PRESENT-liknande permutation varierar från 45 för SPONGENT-88 till 140 för SPONGENT-256. Varje iteration består av:
- Modulo 2-tillägg av LFSR-innehåll synkroniserat vid varje iteration (kan betraktas som konstant per iteration)
- Applicera en S-box på ett lager En 4×4 S-box som uppfyller samma kriterier som en NUVARANDE S-box
- Byte av bitarna på ett sätt som liknar PRESENT [37]
Så vitt känt finns det ingen attack på SPONGENT förutom linjära resolvers för versioner med reducerad iteration [38] .
SPONGENT -koden i assembler och C är allmän egendom.
SPN Hash
Huvudintresset för SPN-Hash ligger i dess bevisbara försvar mot differentiella kollisionsattacker. Detta är en JH-svamp som använder, som namnet antyder, en permutation baserad på SPN . SPN-strukturen är baserad på AES [34] -strukturen : först appliceras 8×8 S-boxar på varje intern tillståndsbyte. S-boxen som används är exakt samma som den som används i AES. Ett mer komplext blandningsskikt appliceras sedan; Styrkan med denna hashing är bra spridning och lätthet. Slutligen skrivs konstanterna vid varje iteration till det interna tillståndet (genom strikt disjunktion), liknande LED och PHOTON. Dessa operationer upprepas 10 gånger för alla säkerhetsinställningar.
Indraget som används är detsamma som i förstärkt Merkle-Damgor: längden på meddelandet läggs till det sista blocket [39] .
DM-PRESENT
DM-PRESENT är helt enkelt ett Merkle-Damgor-schema där komprimeringsfunktionen är PRESENT-blockchifferet i Davis-Meyer-läge. DM-PRESENT-80 är baserad på PRESENT-80 och DM-PRESENT-128 är baserad på PRESENT-128. Denna hash-funktion är sårbar för kollisioner och är inte resistent mot andra preimage-återställning, sådana hash-funktioner kommer endast att vara användbara i applikationer som kräver motstånd för första preimage-återställning och 64-bitars skydd [40] .
ARMADILLO
ARMADILLO är en mångsidig primitiv designad för användning som FIL-MAC (Bilaga I), för hash och digitala signaturer (Bilaga II) och för PRNG och PRF (Bilaga III). Den hackades av Naya Placencia och Peirin [41] . De hittade ett sätt att snabbt upptäcka kollisioner när de används som en hashfunktion (några sekunder på en vanlig PC) [42] .
Se även
Litteratur
- ↑ Poschmann, Axel York. Lättviktskryptering: kryptografisk teknik för en genomgripande värld . — Europa. Univ.-Verl, 2009. ISBN 978-3-89966-341-9 , 3-89966-341-1.
- ↑ 1 2 Kerry A McKay, Larry Bassham, Meltem Sonmez Turan, Nicky Mouha. Rapport om lättviktskryptering . - Gaithersburg, MD: National Institute of Standards and Technology, 2017-03.
- ↑ Megha Agrawal, Jianying Zhou, Donghoon Chang. En undersökning om lättviktsautentiserad kryptering och utmaningar för att säkra industriell IoT // Säkerhet och integritetstrender i det industriella sakernas internet. - Cham: Springer International Publishing, 2019. - s. 71–94 . - ISBN 978-3-030-12329-1 , 978-3-030-12330-7 .
- ↑ 1 2 Susha Surendran, Amira Nassef, Babak D. Beheshti. En undersökning av kryptografiska algoritmer för IoT-enheter // 2018 IEEE Long Island Systems, Applications and Technology Conference (LISAT). — IEEE, 2018-05. - ISBN 978-1-5386-5029-5 . - doi : 10.1109/lisat.2018.8378034 .
- ↑ Damith C. Ranasinghe. Lättviktskryptering för lågkostnads-RFID // Nätverksanslutna RFID-system och lättviktskryptering. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2008. — s. 311–346 . - ISBN 978-3-540-71640-2 , 978-3-540-71641-9 .
- ↑ F. Lefebvre, J. Czyz, B. Macq. En robust mjuk hash-algoritm för digital bildsignatur // Proceedings 2003 International Conference on Image Processing (Cat. No.03CH37429). — IEEE. — ISBN 0-7803-7750-8 . - doi : 10.1109/icip.2003.1246725 .
- ↑ Guy Zyskind, Oz Nathan, Alex 'Sandy' Pentland. Decentralisera integritet: Använda Blockchain för att skydda personuppgifter // 2015 IEEE Security and Privacy Workshops. — IEEE, 2015-05. — ISBN 978-1-4799-9933-0 . - doi : 10.1109/spw.2015.27 .
- ↑ Ali Dorri, Salil S. Kanhere, Raja Jurdak, Praveen Gauravaram. LSB: A Lightweight Scalable Blockchain för IoT-säkerhet och anonymitet // Journal of Parallel and Distributed Computing. — 2019-12. - T. 134 . — S. 180–197 . — ISSN 0743-7315 . - doi : 10.1016/j.jpdc.2019.08.005 .
- ↑ Mohammad Peyravian, Nevenko Zunic. Metoder för att skydda lösenordsöverföring // Datorer och säkerhet. — 2000-07. - T. 19 , nej. 5 . — S. 466–469 . — ISSN 0167-4048 . - doi : 10.1016/s0167-4048(00)05032-x .
- ↑ Kerry A McKay, Larry Bassham, Meltem Sonmez Turan, Nicky Mouha. Rapport om lättviktskryptering . - Gaithersburg, MD: National Institute of Standards and Technology, 2017-03.
- ↑ Schneier, Bruce, 1963-författare. Tillämpad kryptografi: protokoll, algoritmer och källkod i C . - ISBN 978-1-119-43902-8 , 1-119-43902-7.
- ↑ Gilles Brassard, Peter HØyer, Alain Tapp. Kvantkryptanalys av hash- och klofria funktioner // LATIN'98: Teoretisk informatik. — Berlin, Heidelberg: Springer Berlin Heidelberg, 1998. — s. 163–169 . - ISBN 978-3-540-64275-6 , 978-3-540-69715-2 .
- ↑ Lathrop, Joel. Kubattacker på kryptografiska hashfunktioner .
- ↑ Joan Daemen. [ https://pdfs.semanticscholar.org/5259/be9f357a368f356008af5749594aada2e479.pdf Strategier för chiffer- och hashfunktionsdesign baserade på linjär och differentiell kryptoanalys]. - 1995. - 267 sid.
- ↑ Bart Preneel, René Govaerts, Joos Vandewalle. Hashfunktioner baserade på blockchiffer: a syntetisk approach // Advances in Cryptology - CRYPTO' 93. - Berlin, Heidelberg: Springer Berlin Heidelberg. — S. 368–378 . - ISBN 978-3-540-57766-9 .
- ↑ Antoine Joux, Thomas Peyrin. Hash-funktioner och den (förstärkta) Boomerang-attacken // Framsteg inom kryptologi - CRYPTO 2007. - Berlin, Heidelberg: Springer Berlin Heidelberg. — S. 244–263 . — ISBN 978-3-540-74142-8 .
- ↑ Stephane Manuel, Thomas Peyrin. Kollisioner på SHA-0 på en timme // Snabb mjukvarukryptering. — Berlin, Heidelberg: Springer Berlin Heidelberg. — S. 16–35 . - ISBN 978-3-540-71038-7 , 978-3-540-71039-4 .
- ↑ 1 2 3 Jean-Sébastien Coron, Yevgeniy Dodis, Cécile Malinaud, Prashant Puniya. Merkle-Damgård Revisited: How to Construct a Hash Function // Advances in Cryptology - CRYPTO 2005. - Berlin, Heidelberg: Springer Berlin Heidelberg, 2005. - s. 430–448 . - ISBN 978-3-540-28114-6 , 978-3-540-31870-5 .
- ↑ Narayana D. Kashyap. En meningsfull MD5 Hash Collision Attack . — San Jose State University Library.
- ↑ Davies-Meyer Hash Function // SpringerReference. — Berlin/Heidelberg: Springer-Verlag.
- ↑ Mohammad A. AlAhmad, Imad Fakhri Alshaikhli, Mridul Nandi. Joux multikollisionsattack i svampkonstruktion // Proceedings of the 6th International Conference on Security of Information and Networks - SIN '13. - New York, New York, USA: ACM Press, 2013. - ISBN 978-1-4503-2498-4 . - doi : 10.1145/2523514.2523551 .
- ↑ Krystian Matusiewicz, María Naya-Plasencia, Ivica Nikolić, Yu Sasaki, Martin Schlaffer. Rebound Attack on the Full Lane Compression Function // Advances in Cryptology - ASIACRYPT 2009. - Berlin, Heidelberg: Springer Berlin Heidelberg, 2009. - s. 106–125 . - ISBN 978-3-642-10365-0 , 978-3-642-10366-7 .
- ↑ Dmitrij Khovratovich, Ivica Nikolić. Roterande kryptoanalys av ARX // Snabb mjukvarukryptering. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2010. — s. 333–346 . - ISBN 978-3-642-13857-7 , 978-3-642-13858-4 .
- ↑ 12 R.O. _ Gilbert. Utvärdering av fyra pseudo-slumptalsgeneratorer . - Office of Scientific and Technical Information (OSTI), 1973-05-01.
- ↑ 1 2 Bertoni, Guido, Joan Daemen, Michaël Peeters och Gilles Van Assche. Svampfunktioner. (2007). http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.101.8103&rep=rep1&type=pdf
- ↑ Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche. Svampbaserade pseudo-slumptalsgeneratorer // Cryptographic Hardware and Embedded Systems, CHES 2010. - Berlin, Heidelberg: Springer Berlin Heidelberg, 2010. - P. 33–47 . - ISBN 978-3-642-15030-2 , 978-3-642-15031-9 .
- ↑ Hongjun Wu. Hashfunktionen JH // Institute for Infocomm Research, Singapore. - 2011. - 1 januari. — S. 54 .
- ↑ Franc̨ois Arnault, Thierry Berger, Cédric Lauradoux, Marine Minier, Benjamin Pousse. Ett nytt tillvägagångssätt för FCSRs // Utvalda områden inom kryptografi. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2009. — s. 433–448 . — ISBN 9783642054433 , 9783642054457 .
- ↑ Thierry P. Berger, Joffrey D'Hayer, Kevin Marquet, Marine Minier, Gaël Thomas. The GLUON Family: A Lightweight Hash Function Family Based on FCSRs // Progress in Cryptology - AFRICACRYPT 2012. - Berlin, Heidelberg: Springer Berlin Heidelberg, 2012. - P. 306–323 . - ISBN 978-3-642-31409-4 , 978-3-642-31410-0 .
- ↑ 1 2 Christophe De Cannière, Orr Dunkelman, Miroslav Knežević. KATAN och KTANTAN - En familj av små och effektiva hårdvaruorienterade blockchiffer // Föreläsningsanteckningar i datavetenskap. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2009. — s. 272–288 . — ISBN 9783642041372 , 9783642041389 .
- ↑ Martin Hell, Thomas Johansson, Alexander Maximov, Willi Meier. A Stream Cipher Proposal: Grain-128 // 2006 IEEE International Symposium on Information Theory. — IEEE, 2006-07. — ISBN 142440505X , 1424405041 . - doi : 10.1109/isit.2006.261549 .
- ↑ 1 2 Jean-Philippe Aumasson, Luca Henzen, Willi Meier, María Naya-Plasencia. Quark: A Lightweight Hash // Journal of Cryptology. — 2012-05-10. - T. 26 , nej. 2 . — S. 313–339 . - ISSN 1432-1378 0933-2790, 1432-1378 . - doi : 10.1007/s00145-012-9125-6 .
- ↑ Jean-Philippe Aumasson, Daniel J. Bernstein. SipHash: A Fast Short-Input PRF // Lecture Notes in Computer Science. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2012. — s. 489–508 . - ISBN 978-3-642-34930-0 , 978-3-642-34931-7 .
- ↑ 1 2 Joan Daemen, Vincent Rijmen. Rijndael/AES // Encyclopedia of Cryptography and Security. — Springer US. — S. 520–524 . — ISBN 9780387234731 .
- ↑ Jian Guo, Thomas Peyrin, Axel Poschmann. The PHOTON Family of Lightweight Hash Functions // Advances in Cryptology - CRYPTO 2011. - Berlin, Heidelberg: Springer Berlin Heidelberg, 2011. - s. 222–239 . — ISBN 9783642227912 , 9783642227929 .
- ↑ Jian Guo, Thomas Peyrin, Axel Poschmann, Matt Robshaw. The LED Block Chipher // Cryptographic Hardware and Embedded Systems - CHES 2011. - Berlin, Heidelberg: Springer Berlin Heidelberg, 2011. - s. 326–341 . — ISBN 9783642239502 , 9783642239519 .
- ↑ Andrey Bogdanov, Miroslav Knežević, Gregor Leander, Deniz Toz, Kerem Varıcı. spongent: A Lightweight Hash Function // Cryptographic Hardware and Embedded Systems - CHES 2011. - Berlin, Heidelberg: Springer Berlin Heidelberg, 2011. - s. 312–325 . - ISBN 978-3-642-23950-2 , 978-3-642-23951-9 .
- ↑ Mohammed Ahmed Abdelraheem. Uppskattning av sannolikheterna för lågviktsdifferentiella och linjära approximationer på PRESENT-liknande chiffer // Föreläsningsanteckningar i datavetenskap. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2013. — s. 368–382 . — ISBN 9783642376818 , 9783642376825 .
- ↑ Jiali Choy, Huihui Yap, Khoongming Khoo, Jian Guo, Thomas Peyrin. SPN-Hash: Improving the Provable Resistance against Differential Collision Attacks // Progress in Cryptology - AFRICACRYPT 2012. - Berlin, Heidelberg: Springer Berlin Heidelberg, 2012. - S. 270–286 . - ISBN 978-3-642-31409-4 , 978-3-642-31410-0 .
- ↑ Information om doktorsavhandling vid Civil Engineering Faculty och Mechanical Engineering Faculty of Wroclaw University of Technology // Archives of Civil and Mechanical Engineering. — 2008-01. - T. 8 , nej. 2 . — S. 181–183 . — ISSN 1644-9665 . - doi : 10.1016/s1644-9665(12)60205-2 .
- ↑ Maria Naya-Plasencia, Thomas Peyrin. Praktisk kryptoanalys av ARMADILLO2 // Snabb mjukvarukryptering. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2012. — s. 146–162 . — ISBN 9783642340468 , 9783642340475 .
- ↑ Stéphane Badel, Nilay Dağtekin, Jorge Nakahara, Khaled Ouafi, Nicolas Reffé. ARMADILLO: A Multi-purpose Cryptographic Primitive Dedicated to Hardware // Cryptographic Hardware and Embedded Systems, CHES 2010. - Berlin, Heidelberg: Springer Berlin Heidelberg, 2010. - s. 398–412 . — ISBN 9783642150302 , 9783642150319 .