Letvægts kryptografi-hash-funktion
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 20. oktober 2020; verifikation kræver
1 redigering .
Hashfunktionen af letvægtskryptografi er en kryptografisk stærk hashfunktion, der bruges i "letvægts" kryptografi [1] . I øjeblikket er relevansen af sådanne hash-funktioner steget dramatisk på grund af muligheden for at bruge dem i mange aktivitetsområder (fra RFID til tingenes internet ) og i skæringspunktet mellem discipliner ( Blockchain og IoT ) . I lyset af de særlige forhold ved brugen af disse hash-funktioner er de underlagt yderligere krav . De fleste moderne hash-funktioner bruger Merkle-Damgor-strukturen og svampefunktionen som deres grundlag .
Begrebet letvægtskryptering
Letvægtskryptering er en sektion af kryptografi, der overvejer algoritmer for enheder, der ikke har tilstrækkelige ressourcer til at implementere eksisterende ciphers , hash-funktioner , elektroniske signaturer osv. [2] "Lightweight"-kryptering er blevet ekstremt relevant på nuværende tidspunkt på grund af spredningen af paradigmet smart home , hvor mange enheder af lille størrelse, med begrænset computerkraft, begrænset hukommelse og lavt strømforbrug kommunikerer med hinanden, udveksler fortrolige oplysninger om lejeren, for at udføre deres opgaver [3] [4] . Også af særlig interesse er algoritmer til RFID- tags [5] . For at forhindre angribere i at bruge brugerens private informationer kræves en særlig udvikling og optimering af algoritmer, der kan arbejde med begrænsede ressourcer og give et tilstrækkeligt sikkerhedsniveau [4] .
Hash-funktioner
Ansøgning
For at adressaten kan sikre sig, at der er sendt en besked til ham fra den rigtige adressat, sendes den sammen med en elektronisk signatur. I praksis er det ikke beskeden, der er underskrevet, men dens hash-sum, som kan reducere beregningsressourcerne til at skabe en signatur betydeligt (da hash-summen normalt er størrelsesordener mindre end nøglen) og øge kryptografisk styrke (en angriber). vil ikke være i stand til at finde ud af de originale data kun fra hashen) [6] . Hash-funktioner bruges i blockchain-teknologi til at bestemme den blok, der vil blive tilføjet til den generelle kæde. For eksempel: for at tilføje en ny blok til Bitcoin -platformen, skal du finde en SHA-256 hash-sum mindre end et bestemt måltal. Den næste oprettede blok vil have hashen af den forrige [7] . Desuden kan hash-funktioner, især hash-funktionerne i letvægtskryptografi, anvendes i skæringspunktet mellem discipliner. For eksempel: de bruges i LSB blockchain, som er designet til brug i tingenes internet [8] .
Også hash-summer bruges ved kontrol af adgangskoder. Hvis operativsystemer gemte adgangskoder i filer, så kunne crackere, der bruger uautoriseret adgang, få adgang til dem, og udtrækning af hashen ville til gengæld ikke give dem noget [9] .
Krav
De grundlæggende krav til lette kryptografiske hashfunktioner er de samme som for almindelige kryptografiske hashfunktioner [10] :
- Modstand mod restaurering af det første præbillede - i nærvær af en hashsum , manglende evne til at beregne
![{\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)
- Modstand mod restaurering af den anden prototype - i nærværelse af umuligheden af at finde , sådan at
![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)
- Kollisionsmodstand er umuligheden af at finde og sådan, at [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)
Under hensyntagen til mulighederne for de computerenheder, som algoritmerne vil blive produceret på, samt de opgaver, der skal udføres, tilføjes særlige krav til de grundlæggende krav:
- Lavt energiforbrug
- Lille intern tilstandsstørrelse [2]
Angreb på hash-funktioner
- Angreb af "fødselsdage" - bruges til at søge efter en kollision af den anden slags , udnytter paradokset med fødselsdage . For et vellykket angreb skal antallet af hash-funktionskald være cirka , og for kvantecomputere [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 - angreb - effektiv til angreb på hash-funktioner og cifre, der bruger LFSR [13]
- Lineært angreb ( engelsk Linear cryptanalysis ) - designet til hash-funktioner ved hjælp af blok- og stream-cifre [14]
- Differentielle angreb ( engelsk Differential cryptanalysis ) - effektiv til hashfunktioner med blokcifre [15]
- Boomerangangrebet er et avanceret differentialangreb, der med succes er blevet anvendt på hash-funktioner [16] . Så for eksempel at finde SHA-0- kollisioner ved hjælp af dette angreb, tog det kun en time på en almindelig pc [17]
- Message lengthening attack - bruges til hash-funktioner baseret på Merkle-Damgor-strukturen [18] . Essensen af angrebet er at tilføje nye bits til slutningen af beskeden. Sårbare funktioner omfatter: MD5 og SHA-1 [19] [20]
- Zhus multikollisionsangreb [21] er rettet mod hash-funktioner, der bruger svampefunktionen som deres grundlag , hvilket er almindeligt blandt letvægts kryptografifunktioner.
- Rebound-angreb - designet til AES-lignende algoritmer [22]
- Rotationskrypteringsanalyse -skabt til at knække hash-funktioner baseret på ARX ( modulo - sammenligning - bitskift - XOR ) [23 ]
Typer af hashes
Hovedidé
Antag, at vi får en initialiseringsvektor : (fast og åben), en komprimeringsfunktion, der afbildes til og en besked , hvor en blok af bits, hvis ikke et multiplum af , så fylder vi den sidste blok med 1 og nuller [18] . For eksempel: hvis
![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}\ gange \{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)
![m_i](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)
,
så fodrer vi blokken som input:
![2](https://wikimedia.org/api/rest_v1/media/math/render/svg/901fc910c19990d0dbaaefe4726ceb1a4e217a0f)
,
hvor en tilføjes for at undgå kollisioner. Nu kan vi definere hash-funktionen :
![H](https://wikimedia.org/api/rest_v1/media/math/render/svg/75a9edddcca2f782014371f75dca39d7e13a9c1b)
Forbedret algoritme
For at forbedre beskyttelsen mod angreb baseret på udvidelsen af inputmeddelelsen, kan du tilføje en ny blok, som vil registrere længden af meddelelsen [18] . I dette tilfælde vil det være:
Der er også en optimering, der giver dig mulighed for at spare hukommelsesressourcer (hvilket er vigtigt for lette kryptografiske opgaver): hvis der er plads nok i den sidste blok til at registrere meddelelseslængden, vil den blive skrevet der:
Svampefunktionen er meget udbredt i kryptografi, den bruges til at skabe algoritmer til PRNG [24] , stream- og blokchiffer og hash-funktioner [25] .
Hovedidé
Størrelsessvampen kan opdeles i 2 dele: bithastighed og kraft . Ved initialisering nulstilles svampens indre tilstand; beskeden er polstret med nuller, så dens størrelse er et multiplum af .
![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ølgende er trinene:
![2](https://wikimedia.org/api/rest_v1/media/math/render/svg/901fc910c19990d0dbaaefe4726ceb1a4e217a0f)
- Absorption
- De første bits i den interne tilstand erstattes af resultatet af XOR-operationen af disse bits og den næste blok af den oprindelige meddelelse
![r](https://wikimedia.org/api/rest_v1/media/math/render/svg/0d1ecb613aa2984f0576f70f86650b7c2a132538)
- Den interne tilstand håndteres af permutationsfunktionen
- Klemmer
- De første bits af svampens indre tilstand aflæses
![r](https://wikimedia.org/api/rest_v1/media/math/render/svg/0d1ecb613aa2984f0576f70f86650b7c2a132538)
- Den interne tilstand håndteres af permutationsfunktionen [24] [25]
P-svamp og T-svamp
P(permutation)-svamp og T(transformationel)-svamp er svampe, der bruger henholdsvis tilfældig permutation og PRNG til at opdatere deres interne tilstand. I artiklen, hvori svampefunktionerne blev introduceret, blev det vist, at svampe med effekt , bithastighed og størrelsesvektor , som modtager beskeder af længde , er sådan, at der ved forskellige angreb i gennemsnit kræves følgende antal opdateringsfunktionskald. (to potenser er givet): [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ørste prototype
|
Anden prototype
|
kollision
|
At finde en cyklus
|
T-svamp
|
|
|
|
|
P-svamp
|
|
|
|
|
JH Svamp
JH-svampen hedder sådan, fordi den i struktur ligner JH- hash-funktionen .
Hendes absorptionsstadie består af tre dele:
- De første bits i den interne tilstand erstattes af resultatet af XOR-operationen af disse bits og den næste blok af den oprindelige meddelelse
![r](https://wikimedia.org/api/rest_v1/media/math/render/svg/0d1ecb613aa2984f0576f70f86650b7c2a132538)
- Den interne tilstand håndteres af permutationsfunktionen
- De sidste bits i den interne tilstand erstattes af resultatet af XOR-operationen af disse bits og den næste blok af den oprindelige meddelelse [27]
![r](https://wikimedia.org/api/rest_v1/media/math/render/svg/0d1ecb613aa2984f0576f70f86650b7c2a132538)
Eksempler på hash-funktioner i letvægtskryptering
GLUON
GLUON er en hash-funktion, der bruger en T-svamp baseret på X-FCSR-v2 og F-FCSR-H-v3 [28] software-baserede stream-chiffer: svampens interne tilstand polstres og indlæses i FCSR'en , som synkroniseres i et fast tidsrum. Derefter tilføjes nogle FCSR-celler modulo 2 for at danne det første ord i den næste interne tilstand, FCSR'en synkroniseres, de samme ord tilføjes modulo 2 for at danne det andet ord i den næste interne tilstand, og så videre.
Funktionen har en høj kryptografisk styrke. For eksempel: preimage-angrebet har generelt kompleksitet , hvor er størrelsen af matrixen (som definerer FCSR ), og er størrelsen på ordet, der føres til 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)
Et træk ved GLUON-implementeringen er, at dataene i FCSR ikke skrives sekventielt, men parallelt, hvilket øger eksekveringshastigheden markant. Adderen (elementet, der udfører tilføjelsen ) , som bruges i FCSR , er også blevet optimeret som følger :
![{\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)
Opdateringsfunktionen i GLUON-64 er multivalued, og dens adfærd er meget forskellig fra PRNG .
QUARK
QUARK er en hash-funktion, der bruger en P-svamp med en hardware-orienteret permutation. Den blev implementeret under påvirkning af letvægtsblokcifrene KTANTAN [30] og KATAN [30] og den hardware-orienterede strømchiffer Grain [31] . Den mindste version (136 bit hash) hedder U-QUARK, den mellemstore (176 bit) D-QUARK og den længste (256 bit) S-QUARK.
Opdateringsfunktionen kortlægger vektoren til , indlæser hver halvdel i et separat NFSR ( Nonlinear-feedback shift register ) af længde og itererer derefter over dette . NFSR'er er relateret til hinanden og til LFSR'er med lille længde . Funktionerne og er booleske funktioner valgt på grund af deres ikke-linearitet og algebraiske kompleksitet. og er ens for alle versioner og er lånt fra Grain-v1, men bestemmes fra sag til sag.
![{\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 specifikke ved QUARK-implementeringen er, at den ikke indeholder mellemværdier af svampefunktionen, som kræver yderligere elementer for at gemme dem. Med andre ord, efter permutering af tilstandsværdier, skrives værdierne ikke til den næste tilstand, men føres straks til permutationsfunktionen, med de første bits XORed med beskeden [32] .
![r](https://wikimedia.org/api/rest_v1/media/math/render/svg/0d1ecb613aa2984f0576f70f86650b7c2a132538)
Det har høj kryptografisk styrke. Data om modstand mod forskellige angreb er givet nedenfor [32] :
Svært ved at finde et vellykket angreb:
Kollisioner
|
Første prototype
|
Anden prototype
|
|
|
|
Denne hash-funktion har en offentlig tilgængelig implementering skrevet i C .
SipHash-2-4
SipHash har en ARX-struktur, der var påvirket af BLAKE og Skein . Det giver en familie af tilknytninger i sig selv og er beregnet til at blive brugt som en MAC eller i hash-tabeller. Den har en lignende struktur som JH som SPN-Hash og bruger polstring, der også tager højde for meddelelsens længde. Det består dog ganske enkelt af at tilføje en byte med en beskedlængde modulo 256. SipHash hævder ikke at være kollisionsbestandig, og naturligvis ikke på grund af den lille størrelse af hash-summen.
![{\displaystyle \{0,1\}^{*}\højrepil \{0,1\}^{64}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0b6b0c14cf7173e3e7f44058dce225b8c40e7ce7)
Et karakteristisk træk ved SipHash er, at beskederne er " xored ", ikke som i den sædvanlige svampefunktion, men ifølge en speciel algoritme:
- Den første besked er xorxed med den sidste fjerdedel af svampen
- Svampen behandles af to permutationsfunktioner
- Den første besked er xed igen, men med den første fjerdedel af svampen, mens den anden besked med den sidste
- Svampen behandles af to permutationsfunktioner
- Den anden besked er xed med den første fjerdedel af svampen, og den tredje fjerdedel er xed med 0xFF
På trods af at SipHash er baseret på ARX, er den ikke sårbar over for et rotationsangreb [33] .
Der er materialer om brugen af SipHash på github i det offentlige domæne.
FOTON
PHOTON er en P-svamp baseret på en AES-lignende [34] permutation. For den laveste sikkerhedsindstilling (PHOTON-80/20/16) er bithastigheden under absorption 20 og er 16 under squeeze. Permutationen består af 12 iterationer (for hver sikkerhedsparameter) af den nedenfor beskrevne sekvens af transformationer udført på et 4-bit kvadrat af celler (8 bit for den største version). PHOTON-transportøren består af 4 trin:
![{\displaystyle d\times d}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8832c0aa14719499bb50f640be353abb7f37f069)
- Yderligere konstanter (AddConstants) - yderligere konstanter vælges til at være forskellige ved hver iteration, og så der ikke er symmetri mellem kolonner, som i AES lignende arkitekturer (uden dette lag vil en inputmeddelelse med lige store kolonner bevare denne kvalitet efter et hvilket som helst tal af iterationer). Yderligere konstanter kan genereres af det lineære tilbagekoblingsskiftregister. For høj ydeevne er kun den første kolonne i den interne tilstand involveret. Efter at konstanterne er blevet genereret, tilføjes de modulo 2 til hver celle.
- Cellesubstitution (SubCells) - S-blokken påføres på hver celle. Hvis cellen har en længde på 4 bit, så bruges PRESENT Sbox SBOXPRE, hvis 8 bit - AES Sbox SBOXAES.
- Rækkeskift (ShiftRows) - identisk med AES.
- MixColumnsSerial - Celler behandles som Galois (eller for den højeste sikkerhedsparameter), og hver kolonne multipliceres med en MDS -matrix, der er specielt designet til effektiv implementering i hardware [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)
Kryptografiske data:
Svært ved at finde et vellykket angreb:
Kollisioner
|
Første prototype
|
Anden prototype
|
|
|
|
Permutationsmetoden, der bruges til at opdatere svampen, er tæt på LED [36] -chifferet, som senere blev udviklet af skaberne af PHOTON.
SPONGENT
SPONGENT kan opfattes som en P-svamp, hvor permutationen er en modificeret version af PRESENT blokchifferet.
Antallet af iterationer af en PRESENT-lignende permutation varierer fra 45 for SPONGENT-88 til 140 for SPONGENT-256. Hver iteration består af:
- Modulo 2 tilføjelse af LFSR-indhold synkroniseret ved hver iteration (kan betragtes som konstant pr. iteration)
- Anvendelse af en S-boks på et lag En 4×4 S-boks, der opfylder de samme kriterier som en NUVÆRENDE S-boks
- Udskiftning af bits på en måde svarende til PRESENT [37]
Så vidt det vides, er der intet angreb på SPONGENT bortset fra lineære resolvere til reducerede iterationsversioner [38] .
SPONGENT -koden i assembler og C er i det offentlige domæne.
SPN Hash
Hovedinteressen for SPN-Hash ligger i dets beviselige forsvar mod differentielle kollisionsangreb. Dette er en JH-svamp, der bruger, som navnet antyder, en permutation baseret på SPN . SPN-strukturen er baseret på AES [34] -strukturen : Først påføres 8×8 S-bokse til hver intern tilstandsbyte. Den anvendte S-boks er nøjagtig den samme som den, der bruges i AES. Et mere komplekst blandingslag påføres derefter; Styrken ved denne hashing er god diffusion og lethed. Til sidst skrives konstanterne ved hver iteration til den interne tilstand (ved streng disjunktion), svarende til LED og PHOTON. Disse handlinger gentages 10 gange for alle sikkerhedsindstillinger.
Den anvendte indrykning er den samme som i boostet Merkle-Damgor: længden af meddelelsen tilføjes til den sidste blok [39] .
DM-PRESENT
DM-PRESENT er simpelthen et Merkle-Damgor-skema, hvor komprimeringsfunktionen er PRESENT-blokchifferet i Davis-Meyer-tilstand. DM-PRESENT-80 er baseret på PRESENT-80 og DM-PRESENT-128 er baseret på PRESENT-128. Denne hash-funktion er sårbar over for kollisioner og er ikke modstandsdygtig over for anden preimage-gendannelse, sådanne hash-funktioner vil kun være nyttige i applikationer, der kræver første preimage-gendannelsesmodstand og 64-bit beskyttelse [40] .
ARMADILLO
ARMADILLO er en multi-purpose primitiv designet til brug som FIL-MAC (Appendiks I), til hashing og digitale signaturer (Appendiks II) og til PRNG og PRF (Appendiks III). Den blev hacket af Naya Placencia og Peirin [41] . De fandt en måde til hurtigt at opdage kollisioner, når de blev brugt som en hash-funktion (et par sekunder på en normal pc) [42] .
Se også
Litteratur
- ↑ Poschmann, Axel York. Letvægtskryptering: kryptografisk konstruktion til en omsiggribende verden . — Europ. 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 letvægtskryptering . - Gaithersburg, MD: National Institute of Standards and Technology, 2017-03.
- ↑ Megha Agrawal, Jianying Zhou, Donghoon Chang. En undersøgelse om letvægtsgodkendt kryptering og udfordringer til sikring af industriel IoT // Sikkerhed og privatlivstendenser i det industrielle internet af ting. - 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øgelse af kryptografiske algoritmer til IoT-enheder // 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. Letvægtskryptering til lavpris RFID // Netværksforbundne RFID-systemer og letvægtskryptering. — 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 soft hash-algoritme til digital billedsignatur // Proceedings 2003 International Conference on Image Processing (kat. nr. 03CH37429). — IEEE. — ISBN 0-7803-7750-8 . - doi : 10.1109/icip.2003.1246725 .
- ↑ Guy Zyskind, Oz Nathan, Alex 'Sandy' Pentland. Decentralisering af privatlivets fred: Brug af Blockchain til at beskytte personlige data // 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 for IoT-sikkerhed og 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 til beskyttelse af adgangskodetransmission // Computere og sikkerhed. - 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 letvægtskryptering . - Gaithersburg, MD: National Institute of Standards and Technology, 2017-03.
- ↑ Schneier, Bruce, 1963-forfatter. Anvendt kryptografi: protokoller, algoritmer og kildekode i C. - ISBN 978-1-119-43902-8 , 1-119-43902-7.
- ↑ Gilles Brassard, Peter HØyer, Alain Tapp. Kvantekryptanalyse af hash- og klofri 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. Kubeangreb på kryptografiske hashfunktioner .
- ↑ Joan Daemen. [ https://pdfs.semanticscholar.org/5259/be9f357a368f356008af5749594aada2e479.pdf Cipher and Hash Function Design Strategies baseret på lineær og differentiel kryptoanalyse]. - 1995. - 267 s.
- ↑ Bart Preneel, René Govaerts, Joos Vandewalle. Hash-funktioner baseret på blokcifre: en syntetisk tilgang // 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 og det (forstærkede) Boomerang-angreb // Fremskridt inden for 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å én time // Hurtig softwarekryptering. — 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. Et meningsfuldt 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 multikollisionsangreb i svampekonstruktion // 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 .
- ↑ Dmitry Khovratovich, Ivica Nikolić. Rotationskrypteringsanalyse af ARX // Hurtig softwarekryptering. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2010. — s. 333–346 . - ISBN 978-3-642-13857-7 , 978-3-642-13858-4 .
- ↑ 12 R.O. _ Gilbert. Evaluering af fire pseudo-tilfældige talgeneratorer . - Kontoret for videnskabelig og teknisk information (OSTI), 1973-05-01.
- ↑ 1 2 Bertoni, Guido, Joan Daemen, Michaël Peeters og Gilles Van Assche. Svampe funktioner. (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. Svampebaserede pseudo-tilfældige talgeneratorer // Kryptografisk hardware og indlejrede systemer, CHES 2010. - Berlin, Heidelberg: Springer Berlin Heidelberg, 2010. - S. 33–47 . - ISBN 978-3-642-15030-2 , 978-3-642-15031-9 .
- ↑ Hongjun Wu. Hash-funktionen JH // Institute for Infocomm Research, Singapore. - 2011. - 1. januar. — S. 54 .
- ↑ Francois Arnault, Thierry Berger, Cédric Lauradoux, Marine Minier, Benjamin Pousse. En ny tilgang til FCSR'er // Udvalgte områder i 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. - S. 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 og KTANTAN - En familie af små og effektive hardwareorienterede blokcifre // Forelæsningsnotater i datalogi. — 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 , nr. 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 Cipher // 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. Estimering af sandsynligheden for lavvægtsdifferentielle og lineære approksimationer på PRESENT-lignende chiffer // Forelæsningsnotater i datalogi. — 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 ph.d.-afhandling ved Civil Engineering Faculty og 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 krypteringsanalyse af ARMADILLO2 // Hurtig softwarekryptering. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2012. — s. 146–162 . — ISBN 9783642340468 , 9783642340475 .
- ↑ Stéphane Badel, Nilay Dağtekin, Jorge Nakahara, Khaled Ouafi, Nicolas Reffe. 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 .