-
Translated by Robert Ylitalo
(KYBS2001 course assignment at JYU.FI)
-
♪ (38C3 intromusiikki) ♪
-
Seuraava puhujamme on Lukas Stennes.
-
Hän on tohtoriopiskelija Ruhrin yliopistossa Bochumissa.
-
Hänen tutkimuksensa keskittyy kryptonalyysiin.
-
Hän oli myös osa tiimiä, joka paljasti haavoittuvuuden GPRS:ssä.
-
Itse asiassa hän sai parhaan julkaisun palkinnon tästä tutkimuksesta, jonka hän esittelee nyt.
-
Eli laatu on taattu.
-
Lukas puhuu NATOn radioliikenteen salauksen murtamisesta ja esittelee hyökkäyksen Yhdysvaltain armeijan ja NATOn käyttämää korkean taajuuden radioviestinnän salausalgoritmia vastaan.
-
Tervetuloa, antakaa suuret aplodit!
-
NATO ja Yhdysvaltain armeija käyttävät turvatonta salausta nimeltä Half Loop 24.
-
Tässä esityksessä kerron, miten sen voi murtaa.
-
Aloitetaan kuitenkin aivan alusta.
-
Selitetään ensin, mitä symmetrinen salaus oikeastaan on.
-
Tarvitsemme siihen kaksi päähenkilöämme: Alicen ja Benjaminin.
-
Huomasitte varmaan vitsin, yleensä kryptografiassa puhumme Bobista, ei Benjaminista.
-
Mutta koska käytän norsuja selityksissä, nimesin hänet Benjaminiksi.
-
Ja jos ihmettelet, miksi käytän norsuja, ne eivät ole tavallisia norsuja, vaan Casa-fantteja.
-
Casa-fantit ovat CASA:n maskotteja. CASA tarkoittaa "Cyber Security in the Age of Large-Scale Adversaries".
-
Se on Ruhrin yliopiston huippuyksikkö kyberturvallisuuden tutkimuksessa.
-
Nyt Alice ja Benjamin haluavat kommunikoida turvattoman kanavan yli.
-
Ongelmana on kolmas osapuoli, pahantahtoinen Charlie, joka salakuuntelee heidän viestintäänsä.
-
Tietenkään Alice ja Benjamin eivät halua Charlien kuuntelevan heitä.
-
Metaforana voidaan ajatella, että he tekevät näin:
-
He laittavat viestin erittäin vahvaan laatikkoon.
-
Laatikon täytyy olla niin vahva, ettei Charlie pysty avaamaan sitä.
-
Sitten he laittavat laatikkoon lukon.
-
Lukon täytyy olla niin vahva, ettei kukaan, ei edes Charlie voi murtaa sitä.
-
Sen jälkeen he voivat lähettää laatikon toisilleen.
-
Heillä molemmilla on avain, jolla laatikon voi avata ja sulkea.
-
Näin he voivat viestiä keskenään ilman, että Charlie voi salakuunnella.
-
Tätä samaa halutaan saavuttaa digitaalisessa maailmassa symmetrisellä salauksella.
-
Symmetriseksi sitä kutsutaan siksi, että avain on molemmilla osapuolilla sama.
-
Jos on symmetrinen salaus, on olemassa myös epäsymmetrinen salaus, jota kutsutaan myös julkisen avaimen salaukseksi. Symmetristä kutsutaan joskus salaisen avaimen salaukseksi.
-
Epäsymmetrisellä salauksella luodaan avain molemmille puolille.
-
Tämän jälkeen käytetään symmetristä salausta varsinaiseen viestien salaamiseen.
-
Salausta käytetään nykyään lähes kaikkialla.
-
Puhelimellasi, kun kirjoitat viestin esimerkiksi Signaliin, viestit salataan.
-
Toinen hyvä esimerkki on HTTPS eli TLS.
-
Kun avaat verkkosivun, selaimen osoitepalkissa näkyy lukon kuva, ja siitä näet lisätiedot.
-
Siellä lukee esimerkiksi jotain tyyliin: TLS, AES ja muuta vastaavaa.
-
Symmetrisessä salauksessa meitä kiinnostaa erityisesti AES, koska se on lohkosalaus, ja ei mikä tahansa lohkosalaus, vaan se lohkosalaus.
-
AES tarkoittaa "Advanced Encryption Standard".
-
Se on todennäköisesti maailman käytetyin salausalgoritmi.
-
AES ottaa syötteenä 128-bittisen tekstin.
-
Tätä syötettä kutsutaan selkotekstiksi, ja AES muuntaa sen salatekstiksi.
-
Salateksti on myös 128-bittinen, ja muunnos perustuu salausavaimeen.
-
AES:n turvallisuustakuu on se, että jos hyökkääjällä (Charliella) ei ole tietoa salaisesta avaimesta, hän ei pysty palauttamaan salatekstiä alkuperäiseksi.
-
Eli ilman avainta Charlie ei voi purkaa viestiä.
-
Se on jo itsessään erittäin hyödyllistä, mutta todellisessa maailmassa...
-
haluamme salata enemmän kuin vain yhden lohkon.
-
Siksi tarvitaan jotain, mitä kutsutaan toimintatavaksi (mode of operation), joka määrittelee, miten käsitellään useita lohkoja.
-
Kuten sanoin, AES on kehittynyt salausstandardi.
-
Se on standardi, jonka NIST määritteli 2000-luvun alussa.
-
Kyseessä on siis Yhdysvaltain standardi, ja siitä lähtien sitä on käytetty laajasti.
-
AES:n turvallisuustakuu on käytännössä se, ettei kukaan voi purkaa salausta ilman avainta. Mutta miksi näin on?
-
Miksi olemme niin varmoja, ettei kukaan voi tehdä sitä?
-
Koska kukaan ei ole vielä löytänyt toimivaa hyökkäystä.
-
Ei ole olemassa matemaattista todistetta, joka osoittaisi AES:n turvallisuuden, mutta kaikille tunnetuille hyökkäyksille se on osoittautunut vastustuskykyiseksi.
-
Siksi luotamme AES:iin, koska se on selvinnyt yli kahden vuosikymmenen ajan tutkimuksista.
-
Valitettavasti meillä ei ole aikaa käydä tänään läpi kaikkia yksityiskohtia tästä huippukiinnostavasta algoritmista.
-
Jos haluat tietää lisää, Christoph Parrin luento YouTubessa on ilmaiseksi katsottavissa kaikille.
-
Christoph on professori Bochumissa, ja kyseessä on kryptografian johdantoluento, jonka kyberturvallisuuden opiskelijat käyvät siellä.
-
Pieni sivuhuomautus.
-
Christoph on nykyään Bochumin Max Planck -instituutin perustajajohtaja.
-
Ja hän on todella hyvä.
-
Tässä oli siis lyhyt johdanto symmetriseen salaukseen, mutta tuskin olette täällä vain sen vuoksi. Olette täällä kuulemassa sotilasradiosta, eikö?
-
Niinpä.
-
Aloitetaan siis sotilasradiosta.
-
Aloitetaanpa näyttämällä teille tämä kuva.
-
Ja nyt...
-
Annan hetken aikaa miettiä, mikä on tämän kuvan ja tämän puheen eli sotilasradion välinen yhteys.
-
Itse asiassa mitään todellista yhteyttä ei ole.
-
Ainoa yhteys on minä itse, sillä otin tämän kuvan noin kaksi ja puoli vuotta sitten Ateenassa.
-
Olin Ateenassa ensimmäisessä tieteellisessä konferenssissani.
-
Kyseessä oli FSE, eli Fast Software Encryption -konferenssi, joka on
-
merkittävin konferenssi symmetrisessä kryptografiassa.
-
Konferenssin aikaan vietettiin myös Kreikan kansallispäivää, jolloin kaduille tuotiin panssarivaunuja ja taivaalle hävittäjiä. Tunnelma oli kaoottinen, ja silloin otin tämän kuvan.
-
Siellä konferenssissa osallistuin esitykseen, jonka nimi oli: "Cryptoanalysis of the SODA Cipher for HF Radio Automatic Link Establishment".
-
Tämä esitys kiinnitti huomioni, ja haluan lyhyesti selittää otsikon merkityksen.
-
Esityksen piti Marco Stanzari, joka myöhemmin työskenteli kanssamme Half Loop -salauksen murtamisessa.
-
Otsikossa "cryptanalysis" tarkoittaa salauksen analysointia eli yritystä murtaa se tai arvioida sen turvallisuutta.
-
SoDark on vain salauksen nimi, ja "cipher" tarkoittaa salausta.
-
Haluan kuitenkin puhua hieman HF-radiosta ja automaattisesta linkinmuodostuksesta.
-
Aloitetaan HF-radiosta.
-
HF tarkoittaa high frequency eli korkeataajuus. Kyseessä on 3–30 MHz välinen taajuusalue, joka mahdollistaa ns. skywave-ilmiön.
-
Skywave-ilmiössä radiosignaali heijastuu ylemmän ilmakehän hiukkasista takaisin maahan, jolloin se voi kulkea erittäin pitkiä matkoja.
-
Signaali voi jatkaa heijastumista uudelleen ja uudelleen.
-
Tämän vuoksi signaali voi kulkea todella pitkälle.
-
Tämän ansiosta viestintä onnistuu suurien etäisyyksien yli ilman mitään infrastruktuuria.
-
Et tarvitse satelliitteja, tukiasemia tai mitään muuta.
-
Tarvitset vain radiolaitteet molemmissa päissä.
-
Ketkä sitten ovat kiinnostuneita tällaisesta teknologiasta?
-
Tietysti armeija.
-
Myös diplomaatit ja kriisinhallintaviranomaiset.
-
On selvää, että jos
-
tapahtuu esimerkiksi maanjäristys, joka tuhoaa kaikki tukiasemat, tarvitaan viestintäjärjestelmä, joka ei vaadi infrastruktuuria.
-
Se on tällaisessa tilanteessa erittäin hyödyllinen.
-
HF-radion sisällä käytettiin SoDark-salausta, jota Marco analysoi. Half Loop tuli sen tilalle ja sitä käytettiin käsienpuristussanomien salaamiseen.
-
Sen avulla pyrittiin varmistamaan viestinnän luottamuksellisuus ja aitous.
-
Puhutaanpa automaattisesta linkinmuodostuksesta, sillä kuten ehkä arvaat, HF-radio ei ole niin yksinkertainen.
-
Kyse ei ole vain siitä, että lähetät signaalin ja se toimii.
-
Todellisuudessa se on monimutkaista, ja vielä 80-luvun puoliväliin saakka tarvittiin erittäin taitavia operaattoreita molemmissa päissä, jotta yhteys saatiin muodostettua.
-
Tämän helpottamiseksi kehitettiin automaattinen linkinmuodostusprotokolla, lyhyesti ALE.
-
Ja siinä
-
Emme mene nyt yksityiskohtiin.
-
Yksinkertaistamme paljon.
-
Perusidea on, että alussa tapahtuu kolmivaiheinen kättely.
-
Tämä on hyvin yleistä viestinnässä.
-
Alice lähettää viestin, jossa hän sanoo "Hei, olen Alice"
-
ja haluan puhua Bobille.
-
Sitten Bob vastaa vastaavalla viestillä: "Olen Bob"
-
ja haluan viestiä Alicen kanssa.
-
Sitten Alice lähettää uudelleen viestin: "Olen Alice"
-
ja haluan viestiä kanssasi, Bob.
-
Tässä siis hyvin yksinkertaistettuna linkki muodostetaan ja viestintä alkaa.
-
Se voi olla ääntä, keskustelua tai dataa.
-
Esimerkiksi sähköposteja voidaan lähettää tämän kautta.
-
Viestintä jatkuu, ja lopuksi lähetetään lopetusviesti.
-
Alice sanoo: "Haluan lopettaa viestinnän nyt."
-
Kuten huomaat, tässä näkyy lukon kuva.
-
Tämä johtuu siitä, että nämä viestit
-
kättely- ja lopetusviestit salataan joko SoDark:lla tai Half Loopilla.
-
SoDark on Half Loopin edeltäjä.
-
Sitä käytettiin todennäköisesti vuoteen 2017 saakka, mutta nykyään viestit salataan Half Loopilla.
-
Miksi salaus tarvitaan tässä?
-
Kun kättelyviestit salataan vahvasti...
-
saadaan aikaan useita hyviä ominaisuuksia.
-
Ensinnäkin viestien luottamuksellisuus, eli kukaan ilman avainta ei tiedä, ketkä viestivät.
-
Kuten sanoin, viesti sisältää Alicen ja Bobin identiteetit.
-
Ilman salausta kuka tahansa näkisi, että Alice ja Bob viestivät keskenään.
-
Ja kyllä, tiedän että sanoin alussa että Bob on Benjamin, mutta ei se haittaa.
-
Toinen hyöty on
-
todennus. Jos Alice ja Bob käyttävät salaista avainta, vain he voivat purkaa viestin ja varmistaa, että se todella tuli toiselta osapuolelta.
-
Jos Benjamin purkaa viestin ja se sanoo "Hei, olen Alice", hän voi luottaa siihen, että viesti todella tuli Alicelta. Tämä on tärkeää HF-radiolle, kun linkki muodostetaan.
-
Et voi vain kuunnella toisia ja muodostaa yhteyttä mihin tahansa, joten todennus tukee myös saatavuutta.
-
Se auttaa varmistamaan viestinnän jatkuvuuden.
-
Teoriassa kuka tahansa, jolla on voimakas lähetin, voi häiritä taajuutta ja estää Alicea ja Benjaminia viestimästä.
-
Mutta jos sinulla on avain, voit lähettää tarvittavat kolme viestiä ja linkki muodostuu. Sitten Benjamin ei enää voi muodostaa yhteyttä Aliceen.
-
Tämäkin osoittaa, miksi salaus on tärkeää.
-
Lopuksi tällä dialla haluan korostaa, että Half Loop, eli salaus jonka aiomme murtaa seuraavaksi, käytetään vain kättely- ja lopetusviesteissä.
-
Kaikki mitä selitän koskee vain kättelyviestejä, ei varsinaista siirrettävää sisältöä kuten puhetta tai tiedostoja.
-
Mennään siis seuraavaksi itse Half Loop 24 -algoritmin yksityiskohtiin, eli algoritmiin, jonka me murtoimme.
-
Half Loop on itse asiassa...
-
määritelty jossain sotilasstandardissa.
-
Jos tunnet FIPS 197 -standardin, eli AES:n virallisen spesifikaation, tämä näyttää sinusta ehkä tutulta.
-
Tässä on useita vaiheita.
-
SubBytes, RotateRows, MixColumns ja AddRoundKey.
-
Nuo vaiheet ovat hyvin samankaltaisia kuin AES:ssä, koska Half Loop muistuttaa paljon AES:ää.
-
Ja jos mietit, onko tämä
-
dokumentti salainen tai jotain sellaista,
-
niin ei ole.
-
Se on julkinen.
-
Kuten mainitsin, olin Ateenassa, ja Marcos piti esityksen Half Loopin edeltäjästä.
-
Esityksen lopussa hän mainitsi, että nyt käytetään tätä Half Loop -salausta.
-
Kysyin, onko se julkinen?
-
Hän sanoi kyllä.
-
Sen voi vain etsiä Googlesta.
-
Sieltä löytyy Yhdysvaltain puolustusministeriön sivu, josta PDF:n voi ladata.
-
Täytyy vain selata alaspäin.
-
Ehkä noin 300 sivua.
-
Liitteessä G on Half Loopin spesifikaatio.
-
Annan nyt lisää yksityiskohtia. Half Loopista on kolme versiota: 24, 48 ja 96. Tässä tarkastellaan versiota 24. Tämä numero tarkoittaa lohkon kokoa.
-
Eli lohkon koko on 24 bittiä.
-
Muistathan, että AES:ssä sekä selkoteksti että salattu teksti olivat 128 bittiä. Half Loopissa ne ovat 24, 48 tai 96 bittiä. Nyt käsittelemme pienintä versiota.
-
muut versiot jätetään tämän esityksen ulkopuolelle.
-
Half Loop on niin sanottu "tweakable" lohkosalaus, ja tässä diassa kutsun sitä kirjaimella E, koska en halua kirjoittaa "Half Loop" joka paikkaan.
-
Kuten mainitsin, se korvasi SoDark-salauksen. Sivuhuomautuksena: SoDark käytti vain 56-bittisiä avaimia, ja jos tiedät jotain kryptografiasta, 56 bittiä ei riitä.
-
Sen pystyy helposti murtamaan brute forcella.
-
Ensisilmäyksellä on hyvä, että vuodesta 2017 alkaen Half Loop on ollut virallisesti määritelty, ja siinä käytetään 128-bittistä avainta.
-
Oikealla olevassa kuvassa näkyy 24-bittinen selkoteksti, 24-bittinen salattu teksti ja 128-bittinen avain.
-
Mutta toisin kuin AES:ssä, tässä on lisäsyöte nimeltä T, joka on niin sanottu tweak.
-
Tweak koostuu nykyisestä ajasta, sanalaskurista ja käytetystä radiotaajuudesta.
-
Puhumme tästä lisää hetken kuluttua, mitä se tarkoittaa ja miksi se on hyödyllinen ominaisuus.
-
Kuten sanoin, Half Loop on vahvasti inspiroitunut AES:stä. Aluksi se voi tuntua hyvältä asialta, mutta yksityiskohdilla on merkitystä.
-
Miksi voidaan sanoa, että se on vahvasti inspiroitunut AES:stä?
-
Koska se käyttää samoja komponentteja.
-
Hetken kuluttua käymme läpi Half Loopin tarkemmin ja näemme, että S-Box, eli substitution box, on otettu suoraan AES:stä. Se on lohkosalauksen keskeinen osa.
-
He käyttävät samaa S-Boxia, mikä on järkevää, koska AES:n S-Box on vahva.
-
He käyttävät myös lähes samaa avainlaajennusta eli key schedulea.
-
Jos et tiedä mitä key schedule tarkoittaa, ei hätää. Käymme sen läpi pian.
-
AES:ssä tila on 16 tavua eli 128 bittiä, kirjoitettuna yleensä 4x4-matriisina. Half Loopissa se on kutistettu 3x1-matriisiksi.
-
Jokainen matriisin kohta on 1 tavu eli elementti joukossa F2^8.
-
AES:ssä käytetään 10 kierrosta, ja sama pätee täällä.
-
Nyt meillä on tämä valmis.
-
Haluan kertoa lisää tästä tweakista.
-
Miksi tarvitsemme sen?
-
Tai miksi haluamme tweakattavan lohkosalauksen?
-
Katsotaanpa kuuluisaa ECB-Tux-esimerkkiä.
-
Mitä tapahtuu, jos salaamme kuvan käyttäen ECB-tilaa eli electronic codebook -tilaa?
-
Muistathan, että AES tai muut lohkosalaimet salaavat yhden lohkon kerrallaan.
-
Mutta yleensä kuva...
-
on useampaa lohkoa. Kuvitellaan esimerkin vuoksi, että yksi lohko vastaa yhtä pikseliä.
-
Jos salaat jokaisen pikselin samalla avaimella ja ilman yhteyttä lohkojen välillä, eli electronic codebook -tilassa, niin silloin...
-
Lyhyesti sanottuna, ECB:n kanssa salattu kuva näyttää tältä.
-
Ja tietenkään tämä ei ole turvallista salausta, eikö?
-
Turvallinen salaus tarkoittaa, että alkuperäisestä viestistä ei paljastu mitään tietoa.
-
Mutta tässä on selvästi nähtävissä, että kyseessä on Tux-kuva.
-
Yleensä käytetään jotain toimintatilaa, kuten GCM. Esimerkiksi HTTPS:ssä käytetään GCM:ää.
-
Mutta jos käytät tweakattavaa lohkosalausta, jossa on lisäsyöte, voit käyttää ECB:tä. Se on kätevää, koska ECB on yksinkertainen.
-
Jos käytät tweakattavaa lohkosalausta ECB-tilassa, saat...
-
halutun lopputuloksen.
-
Saat vain kohinaa, eikä mitään tietoa paljastu.
-
Tweak on lisäsyöte, joka muuttuu vaikka selkoteksti ei muuttuisi.
-
Jos meillä on valkoinen pikseli ja toinen samanlainen valkoinen pikseli, saadaan ilman tweakia sama salattu tulos.
-
Mutta jos lisätään pikselin sijainti eli x- ja y-koordinaatit lisäsyötteenä salaimeen, saadaan eri salattu tulos, vaikka sisältö oli sama.
-
Tällöin saadaan taas turvallinen ja hyödyllinen lopputulos.
-
Ja tulos on taas turvallinen.
-
Lisäksi kannattaa käyttää esimerkiksi laskuria, jotta kun salataan eri kuvia, samassa kohdassa olevat pikselit eivät tuota samaa salaustulosta.
-
Mutta se on vain sivuhuomautus.
-
Mennään nyt syvemmälle ja tarkastellaan teknisesti Half Loop 24:n kierrosfunktiota.
-
Nämä ovat operaatioita, jotka toistetaan uudelleen ja uudelleen. Half Loopissa niitä suoritetaan 10 kertaa.
-
Näiden jälkeen saadaan salattu tulos eli ciphertext.
-
Vasemmalla puolella on syöte, eli joko selkoteksti tai nykyinen tila, jos ei olla ensimmäisellä kierroksella.
-
Tämä on 24 bittiä, joka jaetaan kolmeen tavuun, eli 3 kertaa 8 bittiä.
-
Ensimmäinen vaihe on kierrosavaimen lisäys.
-
Kierrosavain johdetaan
-
128-bittisestä pääavaimesta, ja se yhdistetään tilaan XOR-operaatiolla, eli eksklusiivisella TAI-operaatiolla.
-
Tämä tehdään jokaiselle bitille.
-
Jos bitit ovat samat, tulos on nolla.
-
Jos bitit ovat eri, tilabitti ja avainbitti, tulos on yksi.
-
Seuraava vaihe on S-box, ja kuten sanoin, tässä käytetään AES:n S-boxia. Toteutuksessa se on vain taulukko, jossa tehdään haku.
-
Syöte on 8-bittinen, joten mahdollisia arvoja on 256.
-
Taulukossa on jokaiselle syötteelle oma ulostuloarvo.
-
Turvallisuuden kannalta taulukon sisältö on tärkeä, mutta meille se ei ole nyt oleellista.
-
Seuraava vaihe on lineaarikerros, joka koostuu kahdesta osasta.
-
Ensimmäinen on RotateRow, joka tekee
-
bittien kierron jokaisessa tavussa. Sitten MixedColumn, joka voidaan kuvata matriisikertolaskuna binäärisellä 24x24-matriisilla.
-
Koska toimimme biteillä, laskut ovat XOR-operaatioita.
-
Toisin sanoen, kaikki lasketaan modulo 2, eli jokaisen bitin lopputulos on joko 0 tai 1.
-
Lopputulos on taas 24 bittiä.
-
24-bittinen tulos.
-
Tehdään lyhyt esimerkki.
-
Syöte on 0x01, 0x02 ja 0x03 heksadesimaaleina.
-
0 tarkoittaa 8 nollabittiä, 1 on kolme nollabittiä ja yksi ykkönen lopussa.
-
Meillä on myös kierrosavain, ja ensimmäinen vaihe on kierrosavaimen lisäys.
-
Tässä on sen operaation tulos.
-
Jos meillä on 0x7F ja 0x01, vähiten merkitsevä bitti käännetään, jolloin tulokseksi tulee 0x7E.
-
Ja nyt
-
Tässä diassa en tietenkään näytä kaikkia 256 S-boxin arvoa, mutta 0x7E löytyy, ja katsotaan mitä saadaan.
-
Syöte on 0x7E, ja ulostulo on 0xF3.
-
Aika yksinkertaista, vai mitä?
-
Lineaarikerros voi olla hieman vaikeampi ymmärtää, mutta luota siihen, että matriisikertolaskun tuloksena saadaan tämä uusi tila.
-
Kun tehdään välivaiheet, näet täällä rotaation ja sen jälkeen MixedColumn-vaiheen.
-
MixedColumn on myös...
-
operaatio AES:ssä.
-
Tämän jälkeen saadaan tämä ulostulo.
-
Kuten sanoin, Half Loopissa on 10 kierrosta.
-
Eli tämä kierrosfunktio suoritetaan 10 kertaa.
-
Ensimmäisessä kierroksessa lisätään kierrosavain 0, tehdään S-box, lineaarikerros ja siirrytään seuraavaan kierrokseen.
-
Lisätään kierrosavain 1, tehdään S-box, lineaarikerros ja niin edelleen.
-
Tämä toistetaan 10 kertaa, mutta
-
viimeinen kierros on hieman erilainen, koska lineaarikerros ei enää tuo lisäturvaa, joten se voidaan jättää pois.
-
Lisätään kuitenkin vielä yksi kierrosavain, muuten hyökkääjä voisi laskea takaisinpäin.
-
Tarvitaan siis avaimen lisäys aivan lopussa.
-
Siinä on koko Half Loop.
-
Tässä on koko algoritmi.
-
Syötetään selkoteksti vasemmalta, tehdään 10 kierrosta ja saadaan salattu teksti.
-
Mutta yksi asia puuttuu, en ole vielä selittänyt, miten kierrosavaimet saadaan, eikö niin?
-
Eli tietenkin...
-
Meillä on pääavain, mutta miten kierrosavaimet saadaan?
-
Tätä varten käytetään avainlaajennusta eli key schedulea.
-
Avainlaajennus on lainattu AES:stä pienin poikkeuksin, oikeastaan kahdella poikkeuksella.
-
Ensinnäkin kierrosavaimia tarvitaan vähemmän, joten määrä on pienempi.
-
Toiseksi meillä on tweak, joka XORataan alussa. Avain jaetaan kahteen osaan.
-
Ensimmäiset 64 bittiä ja loput 64 bittiä.
-
Ensimmäiseen 64 bittiin lisätään tweak T.
-
Tämä on siis
-
käytetty taajuus, aikaleima ja sanalaskuri.
-
Tämä XORataan avaimen ensimmäiseen osaan ja sitten suoritetaan AES-tyyppinen avainlaajennus.
-
AES:n key schedule on melko yksinkertainen.
-
Siinä käytetään XOR-operaatioita 32-bittisille sanoille, ja se on FISO-tyyppinen verkko.
-
Käytetään funktiota G.
-
Siitä ei tarvitse huolehtia, mutta siinä on lisää S-boxeja ja bittien uudelleenjärjestelyä.
-
Miten kierrosavaimet sitten saadaan?
-
Otetaan ensimmäiset 24 bittiä kierrosavaimeksi 0, seuraavat 24 bittiä kierrosavaimeksi 1 ja niin edelleen.
-
Lopulta jää yksi tavu jäljelle.
-
Sitten suoritetaan AES-avainlaajennus uudelleen.
-
Saadaan uusi tila.
-
Otetaan taas bitit käyttöön, jatketaan vain bittien käyttämistä.
-
Ja sitten ollaankin jo melkein valmiita.
-
Kierrosavain 10:stä on kasassa kaksi tavua.
-
Tarvitaan vielä yksi tavu.
-
Toistetaan funktio, mutta säilytetään vain ensimmäinen tavu ja hylätään loput.
-
Nyt meillä on kaikki 264 bittiä, eli 24 bittiä kertaa 11 kierrosta.
-
Nyt kun tiedämme, miten Half Loop toimii, katsotaan itse hyökkäystä.
-
Tämä hyökkäys perustuu kahteen tutkimusjulkaisuun.
-
Ensimmäinen artikkeli on "Breaking Half Loop 24", yhteistyössä Markus Dansarien kanssa, joka esitteli SoDarkin, Half Loopin edeltäjä, joka alun perin kiinnitti huomiomme.
-
Mukana oli myös Patrick Derbez Ranskasta ja ohjaajani Gregor Leander Bochumista.
-
Artikkelin lopputulos oli, että Half Loop 24 ei ole turvallinen. Meillä on toimiva hyökkäys, ja se on varsin vahva hyökkäys.
-
Sanotaanko näin...
-
Teoreettisesti katsoen, sanoimme että salaus voidaan murtaa, jos hyökkääjä voi salakuunnella 500 vuoden ajan.
-
Teoriassa tämä on erittäin vahva murtaminen, mutta käytännössä tuskin haittaa, jos hyökkääjän täytyy kerätä 500 vuoden viestintädataa.
-
Esitin tämän artikkelin viime vuonna Japanissa, FSE-konferenssissa, joka on Fast Software Encryption -konferenssi.
-
Kollegani Sharam, joka on nyt takaisin Bochumissa mutta tuolloin oli Nijmegenissä Alankomaissa, tuli luoksemme ja sanoi, että hyökkäystä voitaisiin ehkä parantaa.
-
Hyökkäystä voisi parantaa.
-
Panostimme siihen lisää aikaa.
-
Ja huomasimme, että sitä voi parantaa merkittävästi.
-
Tietenkin koska olemme akateemisessa maailmassa, kirjoitimme uuden artikkelin.
-
Esitin sen tänä vuonna FSE-konferenssissa Leuvenissa.
-
Saimme myös parhaimman paperin palkinnon.
-
Mikä oli tietysti meille todella hienoa.
-
Ennen kuin menemme yksityiskohtiin, haluan korostaa että kryptografiset hyökkäykset voivat tuntua oudoilta, koska hyökkääjät ovat todella voimakkaita.
-
Hyökkäyksissä hyökkääjällä, esimerkiksi Charliella, on usein oikeus pyytää Alicelta viestien salaamista, vaikka Alice säilyttää salaisen avaimen.
-
Charlie voi siis pyytää Alicea salaamaan jonkin selkotekstin.
-
Ja Alice tekee sen.
-
Tämä on tietysti hieman outoa, koska oikeassa elämässä näin ei pitäisi tapahtua.
-
Charlie ei voi vain mennä Alicen luo ja pyytää, että "salaisitko tämän puolestani".
-
Mutta se menee vielä oudommaksi: Charlie voi myös pyytää purkamaan salauksen.
-
Charlie voi sanoa "puratko tämän salatekstin C:n".
-
Alice vastaa selkotekstillä P, eli antaa alkuperäisen viestin.
-
Tätä jatketaan uudestaan ja uudestaan.
-
Lopulta Charlie yrittää ehkä selvittää salaisen avaimen.
-
Voisimme tehdä asiat vielä hullummiksi ja sanoa, että Charlie yrittää vain erottaa käyttikö Alice oikeaa salausta vai täysin satunnaista järjestelmää.
-
Mutta oletetaan, että Charlie yrittää selvittää avaimen.
-
Saatat miettiä, miksi hyökkääjät esitetään näin voimakkaina.
-
Syynä on se, että jos salaus kestää näin voimakkaita hyökkääjiä, voimme luottaa siihen entistä enemmän.
-
On monia esimerkkejä siitä, että tätä ei alun perin suunniteltu.
-
Esimerkiksi hyökkäyksissä, kuten Bleichenbacherin hyökkäyksessä, ei tarkoituksella anneta palautetta purkamisesta, mutta käytännössä saattaa paljastua esimerkiksi ensimmäinen bitti purusta.
-
Jos järjestelmäsi on turvallinen tällaisia hyökkäyksiä vastaan, olet hyvällä tiellä. Ja nyt viimeinen puuttuva palanen on differentiaalikryptoanalyysi.
-
Emme tietenkään mene tämän keskeisen menetelmän kaikkiin yksityiskohtiin. Se kehitettiin 1990-luvun alussa Bihamin ja Shamirin toimesta.
-
Muuten, Shamir-nimi voi kuulostaa tutulta, hän on sama henkilö kuin Shamirin salausjakojärjestelmässä ja RSA:ssa.
-
RSA:n S-kirjain tulee Shamirista.
-
Shamir oli erittäin aktiivinen ja arvostettu kryptografi.
-
He kehittivät differentiaalikryptoanalyysin.
-
Idea siinä on...
-
että ei katsota vain yhtä selkoteksti–salateksti-paria, vaan myös toista selkotekstiä.
-
Tässä on selkoteksti P ja toinen selkoteksti, joka on P XOR delta, niillä on siis tietty ero.
-
Eli kaksi selkotekstiä eroavat toisistaan tietyllä erotuksella delta.
-
Tässä käytän pientä delta-merkkiä kuvaamaan tätä arvoa.
-
Yleisesti käytämme isoa deltaa, kolmion muotoista merkkiä, osoittamaan että puhumme erotuksesta.
-
Delta P tarkoittaa P:n ja P XOR deltan välistä erotusta.
-
Koska kyseessä on XOR, P XOR P XOR delta antaa erotukseksi delta.
-
Differentiaalikryptoanalyysin idea on syöttää tietty ero sisään ja toivoa, että ulostulosta voi päätellä jotakin.
-
Merkintätavasta: emme näytä molempia salausajoja dioissa, vaan vain yhden ja sen erotuksen.
-
Näytämme vain sen erotuksen, joka kiinnostaa meitä.
-
Ja itse asiassa analyysiä ei tarvitse tehdä koko algoritmille, riittää, että se tehdään vain osalle algoritmista.
-
Nyt meillä on kaikki mitä tarvitsemme ja voimme siirtyä itse hyökkäykseen.
-
Mennään siis vielä teknisemmälle tasolle.
-
Tämän kuvan olet jo nähnyt.
-
Kyseessä on taas key scheluder.
-
Half Loopissa meillä on syötteenä paitsi selkoteksti myös tweak.
-
Oletetaan nyt, että hyökkääjä voi myös hallita tätä tweakia.
-
Käytännössä näin ei tietenkään ole.
-
Mutta oletetaan aluksi, että voimme hallita sitä täysin.
-
Katsotaan myöhemmin, miten tämä voidaan toteuttaa käytännössä.
-
Seuraavaksi asetamme eron tweak-arvoon.
-
Tässä kolmas tavu on se, jossa ero delta on.
-
Tweak on 64-bittinen ja kaikki muut tavut paitsi kolmas ovat nollia. Ero on siis vain kolmannessa tavussa.
-
Salaamme siis kaksi selkotekstiä, ja tweakit ovat samanlaisia paitsi kolmannen tavun kohdalla.
-
Nyt haluamme selvittää, mitä tapahtuu kierrosavaimille.
-
Tämä on itse asiassa melko yksinkertaista.
-
Jos ero on kolmannessa tavussa, myös ensimmäisen kierroksen avaimen kolmannessa tavussa on ero.
-
Eli ensimmäinen kierrosavain
-
on muuten sama, mutta kolmannessa tavussa on delta.
-
Kaikki muut ensimmäisen kierroksen bitit pysyvät samoina, koska ero on vain kolmannessa tavussa.
-
Seuraavaksi sovelletaan key scheluderin kierrosfunktiota.
-
Koska käytössä on XOR, ero jatkaa etenemistään.
-
Meillä on delta tässä, ja sitten delta myös tässä.
-
Eli ei eroa muissa kierrosavaimissa,
-
mutta kierrosavain 6:n ensimmäisessä tavussa ero ilmenee taas.
-
Eli jos salaamme P ja P-prime, joissa on eri tweakit, niin kierrosavaimen 6 ensimmäinen tavu eroaa näiden salausten välillä.
-
Ero etenee edelleen, joten myös kierrosavaimissa 7, 8 ja 9 on yhden tavun ero.
-
Ja jos ihmettelet,
-
Tämä data ei vaikuta muihin kohtiin, joten ne pysyvät samoina.
-
Nyt tarkastellaan Half Loopin koko rakennetta uudelleen.
-
Punaisella näkyvät ne kierrosavaimet, jotka eroavat näiden kahden salausajon välillä.
-
Voit jopa merkitä tarkat tavujen paikat.
-
Ero ilmestyy tänne, tänne, tänne, tänne ja tänne.
-
Hyökkäyksen tärkein vaihe on käyttää sellaista selkotekstiparia, jonka erotus vastaa tätä rakennetta.
-
Eli käytämme selkotekstejä, joiden kaksi ensimmäistä tavua ovat samat ja kolmas tavu eroaa delta-arvolla.
-
Delta voi olla mikä tahansa yhden tavun arvo, kunhan se ei ole nolla.
-
Kaikki paitsi nolla kelpaavat.
-
Erotukset kumoavat toisensa ja saamme tilan erotukseksi ison deltan nolla.
-
Tämä tarkoittaa, että ensimmäisen kierrosavaimen jälkeen salauksissa tila on sama, vaikka tweakit ja selkotekstit olivat eri.
-
Eli ensimmäisen kierrosavainvaiheen jälkeen tila on identtinen.
-
Jos syöte S-boxiin on sama, myös S-boxin ulostulo on sama.
-
Jos lineaarikerroksen syöte on sama, sen ulostulo on myös sama.
-
Jos syöte avaimenlisäykseen on sama ja kierrosavain on sama, myös tulos on sama.
-
Tämä toistuu kierrokseen 6 asti. Vasta silloin ero alkaa näkyä.
-
Ensimmäiset kuusi kierrosta voidaan käytännössä ohittaa ilmaiseksi.
-
Eli Half Loop 24 -algoritmissa, jossa on 10 kierrosta, voimme differentiaalihyökkäyksessä ohittaa 6 kierrosta.
-
Se ei tietenkään ole hyvä asia.
-
Meidän tarvitsee hyökätä vain jäljelle jääviä neljää kierrosta vastaan.
-
Kun tarkastelemme näitä neljää viimeistä kierrosta, tiedämme että näillä kahdella selkotekstillä ja eri tweak-arvoilla on erityinen yhteys.
-
Tässä kohdassa tiloissa ei ole vielä eroja.
-
Tilojen välillä ei ole eroja, joten ero on nolla.
-
Seuraavaksi ero tuodaan mukaan kierrosavainten avulla.
-
Täällä aivan lopussa ilmestyy viimeinen ero.
-
Ja oikealla puolella on lopullinen salattu teksti.
-
Koska voimme vaihtaa lineaarikerroksen ja kierrosavaimen lisäyksen paikkaa,
-
voimme ajatella, että sovelletaan ensin lineaarikerroksen käänteisfunktiota kierrosavaimeen ja sitten lisätään se.
-
Tällöin ero esiintyy tässä kohdassa.
-
Ja nyt voimme laskea.
-
Kuinka monta bittitietoa avaimesta tarvitaan, jotta voimme laskea salauksen takaisin ja saada selville tämän erotuksen?
-
Tarvitsemme selvästi kierrosavaimet 10, 9 ja 8.
-
Mutta kierrosavaimeen 7 tarvitaan vain ensimmäinen tavu, kun sovelletaan lineaarikerroksen käänteisfunktiota.
-
Tällä tavoin saamme tietoomme tämän erotuksen.
-
Kuinka monta bittiä tämä sitten on?
-
Kolme tavua täältä, kolme täältä, kolme täältä ja yksi täältä. Yhteensä siis 10 tavua eli 80 bittiä.
-
80 bittiä on paljon, jos haluaa tehdä brute force -hyökkäyksen, mutta vähemmän kuin 128 bittiä.
-
Joten tämä hyökkäys murtaa Half Loopin, ainakin teoreettisesti.
-
Hyökkäys toimii niin, että arvataan kaikki nämä 80 bittiä.
-
Symmetrisessä kryptografiassa arvaaminen tarkoittaa, että käydään kaikki mahdollisuudet läpi silmukassa.
-
Sitten lasketaan salaus takaisinpäin ja tarkistetaan, onko ero nolla.
-
Jos ero on nolla, avain on mahdollinen ehdokas, jota pitää tutkia lisää.
-
Jos ei ole, se hylätään.
-
Tällöin tiedämme, ettei kyseinen 80 bittiä ole oikea avain.
-
Sitten toistetaan prosessi.
-
Useilla selkoteksti–salateksti-pareilla lopulta löydämme oikean 80-bittisen avainyhdistelmän.
-
Eli hyökkäys toimii 2^80 laskennalla ja kuudella kyselyllä.
-
Kyselyt tarkoittavat viestejä, jotka Charlie lähettää Alicelle, selkoteksti ja salattu teksti.
-
Tämä on itse asiassa optimaalista.
-
Yksityiskohtiin menemättä on helppo osoittaa, että edes brute force -hyökkäys ei onnistu viidellä kyselyllä, koska vaihtoehtoja jää liikaa.
-
Tarvitaan siis vähintään kuusi kyselyä.
-
Mutta 2^80 on edelleen paljon.
-
Se vastaa suurin piirtein Bitcoin-verkon päivittäistä laskentatehoa.
-
Emme voi tehdä tätä yliopiston tietokoneella, mutta hyökkäystä voidaan parantaa.
-
Voidaan tehdä esilaskenta ja kokeilla vain kierrosavaimia 10 ja 9.
-
Tehdään etukäteen hakutaulukko, sitten haetaan sieltä ja tarkistetaan, toimiiko avain vai ei.
-
Tätä voi vielä parantaa, jos sallitaan kaksi lisäkyselyä, silloin tarvitsee vain 2^48 laskentaa.
-
2^48 on helposti suoritettavissa.
-
Me toteutimme hyökkäykset.
-
Selittämäni hyökkäykset ovat juuri nämä kaksi.
-
Tarvitset salauskyselyjä.
-
Eli voit pyytää Alicea salaamaan viestejä.
-
Mutta sinun ei tarvitse pyytää purkamaan mitään.
-
Jos saisit pyytää myös purkua, hyökkäyksestä tulisi paljon tehokkaampi.
-
Aikavaativuus tarkoittaa sitä, kuinka monta salausta tai purkua joudut itse suorittamaan. 2^10 on vain 1024.
-
Se on hyvin kevyt hyökkäys, mutta vaatii myös enemmän kyselyjä ja purkukyselyjä.
-
Se ei ole kovin realistinen hyökkäystilanne.
-
Mutta tässä tilanteessa, jossa tarvitsemme 2^56 tai 2^48 ja 5 gigatavua muistia, no, 5 Gt on mitätön määrä, helppo juttu.
-
Tämän voi oikeasti muuttaa käytännön hyökkäykseksi.
-
Tässä asetelmassa ei ole enää kyse teoriasta vaan ALE-protokollasta, eli automaattisesta linkinmuodostuksesta.
-
Tarvitaan jälleen 2^48, eli juuri tämä hyökkäys.
-
Lisäksi kahdeksan teoreettista kyselyä. Jos vain voimme pyytää Alicea salaamaan viestejä meille, se vastaa
-
kahden tunnin salakuuntelua Alicen ja Benjaminin välillä.
-
Seuraavaksi selitän, miten tämä toimii.
-
Mutta huomautetaan, että näiden kahden tunnin aikana pitää tietää myös selkotekstit.
-
Eli ei riitä, että sieppaat radioliikenteen, sinun täytyy salakuunnella tarkasti tiettyä asemaa.
-
Sinun täytyy tietää, mikä on viestinnän selkoteksti.
-
Tarkastellaan nyt hyökkäystä käytännössä.
-
Ensin täytyy ymmärtää, että ALE:ssa
-
kommunikoimassa ei ole vain kaksi osapuolta vaan koko verkko.
-
Kaikki verkon jäsenet jakavat saman symmetrisen avaimen.
-
Eli joukko käyttäjiä ja heillä on kaikilla sama avain.
-
Tavallisesti osapuolet ovat Alice ja Benjamin tai Bob.
-
Mutta tässä tapauksessa käytetään kutsutunnuksia, niin sanottuja call sign -koodeja.
-
Esimerkiksi Alice voi olla AAA.
-
Eli käytössä on kutsutunnukset.
-
Niitä voi verrata vaikka
-
lyhyisiin puhelinnumeroihin. Ne koostuvat kolmesta kirjaimesta, esimerkiksi AAA.
-
Zoomataan nyt kolmivaiheisen kättelyn ensimmäiseen viestiin, jonka Alice lähettää Benjaminille.
-
Meillä on Alice ja Benjamin, mutta nyt Alice on AAA ja Benjamin AQ. Ensimmäinen viesti, jonka AAA lähettää AQ:lle
-
ilmoittaa, että viesti on osoitettu AQ:lle. Se toistetaan ja lopussa sanotaan, että tämä on A. Kutsutunnukset ovat siis kolmikirjaimisia.
-
Jokainen kirjain on 7 bittiä, eli 3 x 7 = 21 bittiä. Jäljelle jää 3 bittiä, joita käytetään viestin tyypin "to" ja "this is" koodaukseen.
-
Muistat ehkä, että tweak T on 64-bittinen ja siihen koodataan aika, sanalaskuri ja käytetty taajuus.
-
Oletetaan, että käytetty taajuus pysyy samana ja aika on ajanhetki. Sanalaskuri kasvaa jokaiselle sanalle.
-
Ensimmäisessä sanassa laskuri on 1.
-
Toisessa 24-bittisessä sanassa laskuri on 2 ja luonnollisesti binaarimuodossa.
-
Kolmannessa sanassa laskuri on 3 eli binäärinä 11.
-
Oletetaan, että aikaa kuluu ja myöhemmin AAQ eli Benjamin lähettää saman viestin, koska hän haluaa muodostaa linkin AAA:n kanssa.
-
Tällöin viestit peilautuvat, 2AA, 2AA ja lähettäjänä AAQ.
-
Nyt kiinnostavaa on, mitä dataa on ennen tätä kohtaa.
-
Näemme, että selkoteksti on täysin sama.
-
Paitsi viimeinen tavu eroaa.
-
Ja tweakissä ero ilmenee kolmannessa tavussa. Siinä on neljä bittiä minuuteista ja neljä bittiä sekunneista.
-
Jos ero kutsutunnuksissa vastaa ajan eroa, saadaan sopiva pari, jossa on ero selkotekstissä ja tweakissa.
-
Silloin voimme suorittaa hyökkäyksemme.
-
Kerrataan, mitä viestityyppejä hyökkäys edellyttää.
-
Taajuuksien pitää olla samat, oletetaan ALE-verkon taajuuden pysyvän vakiona.
-
Sanalaskurien pitää olla samat, mutta tämä on helppoa koska molemmat aloittavat sanasta 1.
-
Kun vertaat kahta sanaa, laskuri on aina sama.
-
Lisäksi tarvitsemme sen, että
-
viestit lähetetään saman 60 minuutin aikaikkunan sisällä.
-
Eli minuutin ylemmät bitit ovat samat, ja ero on vain minuutin viimeisissä neljässä bitissä. Sekunneista kahden bitin täytyy myös täsmätä.
-
Oletetaan, että nämä arvot jakautuvat satunnaisesti, jolloin tämä osuu kohdalleen sattumalta.
-
Lisäksi tarvitsemme, että ero
-
ajan jäljellä olevissa 8 bitissä vastaa kutsutunnuksen erotusta.
-
Tämäkin tapahtuu lopulta sattumalta, jos verkko on riittävän suuri.
-
Näiden ehtojen ja lisäoletusten, kuten viestien määrän ALE-verkossa, perusteella voidaan laskea, että tarvitaan noin kaksi tuntia tiedonkeruuta.
-
Ja siinä se oikeastaan on.
-
Mutta ennen kuin mennään...
-
vastaan ensin muutamaan ilmeiseen kysymykseen. Ilmoitimmeko tästä Natolle? Kyllä ilmoitimme, mutta emme koskaan saaneet vastausta. Lähetimme heille paperin ennen julkaisua.
-
He eivät kuitenkaan koskaan palanneet asiaan, mikä tarkoittaa, että moni ilmeinen kysymys jäi vaille vastausta. Emme siis tiedä kaikkea.
-
Esimerkiksi emme tiedä, aikooko NATO korvata Half Loopin jollain toisella algoritmilla. Haluaisin tietää.
-
Valitettavasti emme tiedä.
-
Toinen ilmeinen kysymys on: miksi ei vain käytetä AES:ää?
-
AES on hyvin tutkittu salausalgoritmi.
-
Miksi ei siis AES?
-
Miksi kehitettiin uusi Half Loop -salaus, joka muistuttaa lähinnä AES:n supistettua versiota?
-
Taas kerran, hyvä kysymys.
-
En tiedä selkeää vastausta.
-
Sanotaan, että AES-lohkot ovat liian suuria.
-
Korkeataajuisessa radiossa kaistanleveys on rajallinen
-
eli voidaan lähettää vain pieniä lohkoja, ja siksi ehkä kehitettiin tämä pienimuotoinen versio. Tosin AES:ääkin voi käyttää pienille lohkoille, esimerkiksi counter-modessa.
-
Lisäksi voidaan lisätä erillinen autentikointi, mutta he tekivät näin. Tässä on vielä muutamia kuvia, jotka ehkä herättävät kysymyksiä, jos et halua kysyä nyt.
-
jos katsot tätä tallenteena myöhemmin, voit myös ottaa yhteyttä.
-
Jos katselet tallennetta tai jotain muuta, ole rohkeasti yhteydessä.
-
Keskustelen mielelläni. Kiitos, se oli siinä.
-
Kiitos.
-
Kiitos, Lukas.
-
Jos haluat esittää kysymyksen ja olet paikan päällä, mene mikrofonin luo.
-
Jos olet verkossa, laita kysymys IRC:n tallennekanavaan.
-
Ensimmäinen kysymys tulee netistä, Signal Angelin kautta.
-
Hei ja kiitos todella mielenkiintoisesta esityksestä.
-
Meillä on kysymys internetin kautta.
-
Näytätte onnistuneen käyttämään tunnettuja menetelmiä nykyistä sotilassalausta vastaan.
-
Tiedättekö, käyttääkö armeija vertaisarviointia vahvistaakseen algoritmejaan?
-
Huomasin myös, että yksi kirjoittajista vaikutti olevan sotilasyliopistosta.
-
Voisitteko sanoa, että siviili- ja sotilastutkijat tekevät nyt enemmän yhteistyötä kuin 20 vuotta sitten?
-
Tämä oli varmaan useampi kysymys.
-
Ensimmäinen taisi olla, onko vertaisarviointia käytössä. No, riippuu miten vertaisarviointi määritellään, mutta akateemisessa maailmassa se on itsestään selvää.
-
Juuri näin toimitaan.
-
Jos haluat suunnitella uuden salauksen, lähetät sen konferenssiin tai lehteen ja saat palautetta muilta tutkijoilta.
-
Mutta tässä tapauksessa en usko, että mitään vertaisarviointia on ollut.
-
Tämä standardi vain on olemassa.
-
En tiedä, onko sisäistä arviointia tehty.
-
Toivon, että olisi, mutta jos olisi, toivon että he olisivat huomanneet heikkouden.
-
Toivottavasti.
-
Mutta toisaalta, olisi myös toivonut, että he olisivat löytäneet haavoittuvuuden itse.
-
Selvä.
-
Sitten unohdinkin jo seuraavan kysymyksen.
-
Olisiko ollut kyse yhteistyöstä sotilas- ja siviilisektorin välillä?
-
Kyllä, kysymys oli, onko yhteistyö sotilaan ja siviilin välillä lisääntynyt?
-
No siis...
-
En oikeastaan osaa sanoa. Kuten sanoin, me ilmoitimme heille, mutta emme saaneet vastausta.
-
Ehkä se tarkoittaa enemmän ei kuin kyllä, mutta en voi sanoa mitä muualla tapahtuu.
-
Kuten aiemmin sanoin, viimeinen kysymys olikin miksei käytetä suoraan AES:ää.
-
Väittäisin, ettei kryptografiassa ole tarvetta käyttää erillisiä salauksia, koska yleisesti käytettävän salauksen tulisi olla niin turvallinen, että armeijakin voi käyttää sitä.
-
Sen pitäisi olla niin turvallinen, että myös sotilaskäyttö onnistuu huoletta.
-
Kiitos.
-
Mikrofoni täällä edessä.
-
Hei, kiitos esityksestä.
-
Halusin kysyä, onko todellisessa hyökkäyksessä tweak tiedossa vai ei?
-
Kyllä, ehkä voin palata tähän kalvoon.
-
Tässä näkyy tweak, kyllä?
-
T on tweak, ja se koostuu pääasiassa aikaleimasta.
-
Ja totta kai aika on tiedossa.
-
Voit katsoa kellosta.
-
Tiedät kellonajan.
-
Sanalaskuri alkaa ykkösestä ja kasvaa siitä ylöspäin.
-
Käytetty taajuuskin on tiedossa, koska sitä kuunnellaan radiosignaalina.
-
Kiitos.
-
Täällä seuraava.
-
Ensinnäkin, kiitos erittäin kiinnostavasta esityksestä.
-
Mainitsit, että tarvitaan noin 120 minuuttia dataa.
-
Ymmärtääkseni Half Loopia käytetään vain kädenpuristuksen salaamiseen.
-
Kuinka todennäköistä on, että oikeasti saadaan kasaan kaksi tuntia kädenpuristuksia?
-
Niin, kaksi tuntia on oletus. Oletetaan, että viesti lähetetään aina
-
unohdin tarkalleen, ehkä kymmenen sekunnin välein.
-
Sitten voidaan keskustella, kuinka monta viestiä oikeasti lähetetään.
-
Mutta tuo kymmenen sekuntia per viesti on yksi arvio.
-
Riippuu toki siitä, kuinka paljon liikennettä on.
-
Mutta nuo kaksi tuntia eivät tarkoita kahden tunnin viestimäärää.
-
Se tarkoittaa vain sitä, että joudut odottamaan kaksi tuntia, jotta tarvittavat viestit sattuvat kohdalleen.
-
Eli...
-
Sanot siis, että nämä viestit löytyvät kahden tunnin kuluessa?
-
Kahdessa tunnissa, kyllä.
-
Selvä, kiitos.
-
Kiitos.
-
Meillä on vielä yksi kysymys tuolla.
-
Tiedän, että AES:ää vastaan on hyökkäyksiä, jos sinulla on käytössä siihen liittyviä avaimia.
-
Joten kysyisin ensin, liittyykö tämä hyökkäys sellaiseen tapaukseen?
-
Tämä on itse asiassa hyvin samankaltainen. Kun hyökkääjällä on käytössään liittyviä tweakeja, se vastaa liittyviä avaimia.
-
Ja nyt, mitä tapahtuu... vaihdetaanpa kalvo nopeasti...
-
Tässä kalvossa, tai hetkinen, väärä kalvo.
-
Tässä siis lisätään tweak osaksi avainta.
-
Ja tämä on itse asiassa todella huono idea.
-
Ensimmäisessä tweakable block cipher -julkaisussa sanotaan selvästi: älä tee näin.
-
Jos teet näin, saat turvallisuutta vain suunnilleen puolet bittimäärästä.
-
Tämä johtaa geneeriseen hyökkäykseen, joka toimii, koska tweak on lisätty avaimen osaksi.
-
Kuten sanoit, tämä muistuttaa liittyvien avainten hyökkäystä, ja niissä hyökkäykset voivat olla erittäin tehokkaita. AES:ää vastaan on tiedettyjä liittyvien avainten hyökkäyksiä.
-
Näitä on dokumentoitu.
-
Luultavasti vain suuremmissa AES-versioissa, mutta kyllä, liittyvät tweakit ovat mahdollisia ja hyökkäykset muistuttavat niitä.
-
Jos saan, vielä yksi pieni lisäkysymys.
-
Kyllä.
-
Miksi he suunnittelivat salauksen tällä tavalla?
-
Ymmärtääkseni tämä oli jo tiedossa, kun Half Loop otettiin käyttöön.
-
Niin, sitäkin.
-
Se on yksi niistä kysymyksistä, joihin haluaisin vastauksen, mutta minulla ei ole sitä.
-
Ehkä he eivät vain tienneet siitä.
-
Tweakin lisääminen avaimeen on helppo tehdä, jos ei tiedä että se on huono idea.
-
Jos ei tiedä, että se ei ole hyvä ratkaisu.
-
Se saattaa näyttää hyvältä idealta ensisilmäyksellä, mutta ei se ole.
-
Täällä oli jatkokysymys.
-
Kiitos.
-
Eli...
-
Vaikka sanoit ettet käsittelisi 48- ja 96-versioita, niin mikä olisi arviosi siitä, kuinka paljon työtä tarvitaan niiden murtamiseen?
-
No, ensinnäkin, kuten sanoin, koska tweak XORataan avaimeen, se pätee myös Halfloop 48- ja 96-versioihin, mikä mahdollistaa geneerisen hyökkäyksen.
-
Se tarkoittaa, että hyökkäys toimii myös niissä.
-
Kryptografian näkökulmasta tämä tarkoittaa jo, että akateemisesti algoritmi katsotaan murretuksi.
-
Mutta hyökkäys, jonka datakompleksisuus on 2^64, ei ole kovin käytännöllinen, koska niin paljon dataa ei koskaan tulla salaamaan Halfloopilla.
-
Toisessa paperissamme käsittelemme näitä suurempia versioita ja joitain niin sanottuja "middle meet" -hyökkäyksiä.
-
Mutta nekään eivät ole käytännöllisiä.
-
Vaikea sanoa, kuinka paljon työtä tarvittaisiin.
-
Mutta yleisesti sanoisin: älä luota niihin, vaikka niitä ei ole vielä murrettu yhtä pahasti kuin Halfloop24, mutta parempi olla käyttämättä.
-
Kiitos.
-
Seuraava kysymys verkosta.
-
Signal Angelilta.
-
Kiitos.
-
Seuraava kysymys on: mitä tapahtuu, jos salaus tapahtuu ajassa 11.03.03.998 ja purkuajassa 11.03.04.001?
-
Eli sekunnit ovat eri.
-
Rehellisesti sanottuna, en tiedä, koska en tunne radioviestintää kovin hyvin.
-
Mutta pahimmassa tapauksessa kokeillaan molemmat.
-
Tarkoitan...
-
Halfloopin purku on todella nopeaa, ja koska selväteksti on hyvin rakenteellista...
-
Jos katsotaan tätä esimerkkiä, tunnisteet ovat täällä ja niiden täytyy täsmätä. Pahimmassa tapauksessa kokeillaan molempia sekuntiarvoja ja katsotaan tuleeko roskaa vai oikea arvo.
-
Mutta kannattaa olla varovainen. Jos tekee sen vain kerran tai kahdesti, ei se haittaa.
-
Mutta jos alat purkaa tuhansia viestejä eri tweak-arvoilla, se ei ole hyvä idea.
-
Silloin hyökkääjäkin saa tietoa ilmaiseksi, mikä ei ole hyvä juttu.
-
Hän saa ilmaiseksi jotain hyödyllistä.
-
Kiitos.
-
Täällä seuraava kysymys.
-
Voiko tämän algoritmin korjata, vai pitäisikö vain käyttää AES:ää?
-
Se riippuu siitä, miten "korjattava" määritellään.
-
Yksi ratkaisu olisi lisätä huomattavasti enemmän kierroksia.
-
Se kyllä estäisi tämän hyökkäyksen, mutta geneerinen ongelma on se, että tweak lisätään avaimeen. Se täytyisi korjata, ja siihen on olemassa ratkaisuja.
-
Tweakable block cipherien kohdalla kirjallisuudessa tiedetään, miten tämä tulisi tehdä. Esimerkiksi three key -viitekehys voisi auttaa.
-
Mutta onko sen korjaaminen vaivan arvoista? En tiedä. Yleisesti ottaen Halfloopin suunnittelu...
-
AES:n S-boksin käyttö on hyvä juttu.
-
Siirrot ovat vähän omituisia, ne voisi siirtää mix column -operaatioon.
-
Mutta yleisesti komponentit ovat vahvoja.
-
Eli meillä on vahva lineaarinen kerros ja vahva S-boksi.
-
Mutta yksityiskohdilla on väliä.
-
Jos todella haluat, sen voisi korjata.
-
Mutta en usko, että siinä olisi hirveästi järkeä.
-
Kiitos.
-
Takarivissä on joku mikrofonilla.
-
On olemassa hyökkäyksiä, jotka kohdistuvat lohkon kokoon eikä avaimen kokoon, kuten esimerkiksi Sweet32 triple DES:llä.
-
Tässä algoritmissa on pieni lohkokoko.
-
Luuletko, että se on haavoittuva tällaisille hyökkäyksille?
-
Kyllä, juuri niin.
-
Pienien lohkokokojen kanssa täytyy olla erittäin varovainen.
-
Selvätekstissä ei ehkä ole tarpeeksi materiaalia, mutta täällä on tweak, eli...
-
Siinä on kuitenkin jotain vaihtelua.
-
Eli jos teet sen oikein...
-
Saat vaihtelua, mutta silti täytyy olla tarkkana.
-
Mainitsit aiemmin differentiaalikryptanalyysin ja tällöin tutkitaan miten erot leviävät, myös ei-deterministisissä tilanteissa.
-
Yleensä ei voida sanoa kovin paljoa, mutta 24 bitin tapauksessa voidaan todennäköisesti laskea koko DDT-taulukko.
-
Se on siis ero-jakaumataulukko, mikä on hieman kiusallista, koska yleensä symmetrisessä kryptossa sitä ei voida tehdä koko salaukselle.
-
Mutta tässä se saattaa olla mahdollista.
-
Jos siis todella haluat tarkastella turvallisuutta tai korjata salauksen, se ei ole mitätöntä.
-
Tarvitaan kunnon analyysiä, jotta nähdään pysyykö se turvallisena vai ei.
-
Kiitos.
-
Tiedetäänkö mitään algoritmin suunnittelijoista?
-
Voiko se olla NSA:n lahjoittama?
-
Ja käsittääkseni, vaikka minulla ei ole lähteitä, tämä tuli enemmän...
-
Korkeataajuusradioyhteisöltä tämä suunnittelu.
-
Eli...
-
Sanotaan näin...
-
Tarkoitan...
-
Se ei ollut edes vitsi.
-
Tiedän, että lahjoituksia on tehty paljon...
-
Kyllä, kyllä, tiedän.
-
Mutta halusin sanoa, että...
-
On olemassa Schneierin laki.
-
Jokainen voi suunnitella salauksen, joka ei ole turvallinen.
-
Ei turvallinen, mutta jonka suunnittelija itse luulee olevan.
-
En siis syyttäisi suunnittelijoita, vaan niitä jotka standardisoivat tämän ilman kunnollista analyysiä. Heitä minä syyttäisin.
-
Selvä. Takarivin mikrofoni taas.
-
Hei, kiitos hyvästä esityksestä.
-
Onko sinulla käsitystä miksi he yhä käyttävät ECB:tä eivätkä jotain muuta tilaa?
-
Ehkä.
-
Missä se nyt olikaan...
-
ECB:n käyttö on itse asiassa ok, koska kyseessä on tweakable block cipher.
-
Ja koska tweak muuttuu jokaisella...
-
Koska tweak sisältää sanalaskurin ja aikaleiman, ECB:n käyttö on ihan hyväksyttävää.
-
Se ei siis ole haavoittuvuus.
-
Se tekee siitä jopa aika yksinkertaisen.
-
Selvä, täällä eturivissä.
-
Onko sinulla proof of concept tästä hyökkäyksestä, vai onko se juridisesti ongelmallista?
-
Meillä on toteutus.
-
Julkaisussa on linkki GitHubiin, ja siellä on toteutus.
-
Me teimme sen.
-
Emme tietenkään salakuunnelleet HF-radiota, vaan teimme tämän laboratoriossa.
-
Generoimme selvätekstit itse ja sitten ajoimme hyökkäyksen.
-
Hyökkäyksessä on käytännössä kaksi vaihetta.
-
Ensimmäinen on oikeastaan juuri se, mitä näytin.
-
Eli selvitetään...
-
viimeisten kierrosten avainbitit ja tämä vei jotain kahden viikon verran CPU-klusterilla. Ei mikään uusi kone, mutta jos haluat ja sijoitat rahaa, saat tämän puristettua ehkä tuntiin.
-
Kun sinulla on tämä osa, joudut brute forcaamaan loput avaimet ja se on hieman yksinkertaisempaa, koska kyse on vain suorasta brutepakko-hyökkäyksestä.
-
Tämän voi ajaa GPU:lla ja se vie ehkä kahdeksan tuntia lisää ja sitten se on siinä.
-
Selvä, tarkistetaan vielä.
-
Ei enää kysymyksiä salissa.
-
Joten suuret kiitokset loistavasta esityksestä Lukas Stennisille.
-
♪ (38C3 outromusiikki) ♪
-
Translated by Robert Ylitalo
(KYBS2001 course assignment at JYU.FI)