skipjack | |
---|---|
Skaber | National Security Agency (USA) |
Oprettet | 1980'erne |
offentliggjort | 1998 (afklassificeret) |
Nøglestørrelse | 80 bit |
Blokstørrelse | 64 bit |
Antal runder | 32 |
Type | Feistel netværk |
Skipjack er en blokchiffer udviklet af US National Security Agency som en del af Capstone -projektet . Efter udvikling blev oplysninger om chifferen klassificeret. Det var oprindeligt beregnet til at blive brugt i Clipper-chippen til at beskytte lydinformation transmitteret over offentlige telefonnetværk samt mobile og trådløse netværk. Algoritmen blev senere afklassificeret [1] .
Skipjack var et af initiativerne foreslået af Capstone -projektet . Projektet blev ledet af National Security Agency (NSA) og National Institute of Standards and Technology (NIST), finansieret af den amerikanske regering. Den officielle startdato for initiativet er 1993. Krypteringsalgoritmen blev udviklet i 1980, og dens første implementering blev modtaget i 1987. Chifferen var beregnet til at blive brugt i Clipper-chippen indlejret i det beskyttede udstyr. Samtidig blev Skipjack kun brugt til at kryptere meddelelser, og nøgledeponering [2] for muligheden for efterfølgende brug af autoriserede organer - det mest diskuterede aspekt af brugen af en chiffer - blev opnået gennem en separat mekanisme kaldet Law Enforcement Adgangsfelt [1] .
I første omgang blev projektet klassificeret og blev derfor udsat for stor kritik. Adskillige akademiske forskere blev tilkaldt for at øge offentlighedens tillid og påskønnelse af algoritmen. På grund af manglen på tid til uafhængig grundig forskning koncentrerede eksperterne sig om at studere beskrivelsen af algoritmeudviklings- og evalueringsprocessen leveret af NSA. Ud over dette gennemførte de en række små tests i løbet af en måned. I den foreløbige rapport om deres arbejde (den endelige rapport blev ikke fulgt) er tre konklusioner angivet [3] :
Chifferen blev frigivet til offentligheden den 24. juni 1998. I august 2016 vedtog NIST nye principper for brugen af kryptografiske standarder , hvor de trak certificeringen af Skipjack-algoritmen tilbage til regeringsformål [5] .
Skipjack bruger en 80-bit nøgle til at kryptere/dekryptere 64-bit datablokke. Dette er et ubalanceret Feistel-netværk med 32 runder [6] .
Teksten er opdelt i 4 ord á 2 bytes hver. De indledende data er ord for hvilke , hvor er rundens ordenstal. Først køres 8 runder efter regel A, derefter efter regel B. Dette gentages to gange, hvilket i alt giver 32 runder.
Her og nedenfor er operationen en binær operation af bitvis (bitvis til tal og ) modulo 2 addition .
Regel A |
Regel B |
Efter afslutningen af algoritmen vil chifferteksten være ordene .
De indledende data er ord for hvilke . Først laves der 8 omgange efter regel B , derefter efter regel A. Gentaget to gange.
Regel A | Regel B |
Efter afslutningen af algoritmen vil ordene være i almindelig tekst .
Permutationsblokken virker på et 16-bit nummer og er et fire-niveau Feistel netværk. En funktion,der virker på et antal på 8 bit, er en substitutionsblok , som kaldes en tabel i algoritmespecifikationen. Matematisk kan blokkens handlingbeskrives som følger:
|
|
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | a3 | d7 | 09 | 83 | f8 | 48 | f6 | f4 | b3 | 21 | femten | 78 | 99 | b1 | af | f9 |
1x | e7 | 2d | 4d | 8a | ce | 4c | ca | 2e | 52 | 95 | d9 | 1e | 4e | 38 | 44 | 28 |
2x | 0a | df | 02 | a0 | 17 | f1 | 60 | 68 | 12 | b7 | 7a | c3 | e9 | fa | 3d | 53 |
3x | 96 | 84 | 6b | ba | f2 | 63 | 9a | 19 | 7c | ae | e5 | f5 | f7 | 16 | 6a | a2 |
4x | 39 | b6 | 7b | 0f | c1 | 93 | 81 | 1b | ee | b4 | 1a | ea | d0 | 91 | 2f | b8 |
5x | 55 | b9 | da | 85 | 3f | 41 | bf | e0 | 5a | 58 | 80 | 5f | 66 | 0b | d8 | 90 |
6x | 35 | d5 | c0 | a7 | 33 | 06 | 65 | 69 | 45 | 00 | 94 | 56 | 6d | 98 | 9b | 76 |
7x | 97 | fc | b2 | c2 | b0 | fe | db | tyve | e1 | eb | d6 | e4 | dd | 47 | 4a | 1d |
8x | 42 | udg | 9e | 6e | 49 | 3c | cd | 43 | 27 | d2 | 07 | d4 | de | c7 | 67 | atten |
9x | 89 | cb | tredive | 1f | 8d | c6 | 8f | aa | c8 | 74 | dc | c9 | 5d | 5c | 31 | a4 |
Økse | 70 | 88 | 61 | 2c | 9f | 0d | 2b | 87 | halvtreds | 82 | 54 | 64 | 26 | 7d | 03 | 40 |
bx | 34 | 4b | 1c | 73 | d1 | c4 | fd | 3b | cc | fb | 7f | ab | e6 | 3e | 5b | a5 |
Cx | annonce | 04 | 23 | 9c | fjorten | 51 | 22 | f0 | 29 | 79 | 71 | 7e | ff | 8c | 0e | e2 |
Dx | 0c | ef | f.Kr | 72 | 75 | 6f | 37 | a1 | ec | d3 | 8e | 62 | 8b | 86 | ti | e8 |
Eks | 08 | 77 | elleve | være | 92 | 4f | 24 | c5 | 32 | 36 | 9d | jfr | f3 | a6 | bb | ac |
fx | 5e | 6c | a9 | 13 | 57 | 25 | b5 | e3 | bd | a8 | 3a | 01 | 05 | 59 | 2a | 46 |
Eli Biham og Adi Shamir udførte et kryptografisk angreb mod 16 ud af 32 runder inden for en dag efter afklassificeringen af algoritmen. Sammen med Alex Biryukov , ved hjælp af den umulige differentielle kryptoanalyse , løste de 31 af 32 af dens runder på få måneder [7] . Senere blev der publiceret artikler, der angreb 28 runder af en chiffer ved hjælp af trunkerede differentialer [8] .
I 2002 udgav Rafael Phan en artikel, der analyserede mulige angreb i hele 32 runder [9] . Senere, i 2009, udtalte en artikel også medforfattet af Phan, at der på det tidspunkt ikke var noget angreb på den fulde Skipjack-chifferalgoritme [10] .
Symmetriske kryptosystemer | |
---|---|
Stream-cifre | |
Feistel netværk | |
SP netværk | |
Andet |