0:00:17.218,0:00:21.502 Seuraava puhujamme on Lukas Stennis. 0:00:21.502,0:00:26.566 Hän on tohtoriopiskelija Ruhrin yliopistossa Bochumissa. 0:00:26.566,0:00:29.849 Hänen tutkimuksensa keskittyy kryptonalyysiin. 0:00:30.290,0:00:36.815 Hän oli myös osa tiimiä, joka paljasti haavoittuvuuden GPRS:ssä. 0:00:37.456,0:00:42.461 Itse asiassa hän sai parhaan julkaisun palkinnon tästä tutkimuksesta, jonka hän esittelee nyt. 0:00:42.461,0:00:44.532 Eli laatu on taattu. 0:00:46.658,0:01:02.712 Lukas puhuu NATOn radioliikenteen salauksen murtamisesta ja esittelee hyökkäyksen Yhdysvaltain armeijan ja NATOn käyttämää korkean taajuuden radioviestinnän salausalgoritmia vastaan. 0:01:02.712,0:01:04.993 Tervetuloa, antakaa suuret aplodit! 0:01:14.198,0:01:19.283 NATO ja Yhdysvaltain armeija käyttävät turvatonta salausta nimeltä Half Loop 24. 0:01:19.283,0:01:21.534 Tässä esityksessä kerron, miten sen voi murtaa. 0:01:21.534,0:01:25.328 Aloitetaan kuitenkin aivan alusta. 0:01:25.328,0:01:28.651 Selitetään ensin, mitä symmetrinen salaus oikeastaan on. 0:01:28.651,0:01:32.844 Tarvitsemme siihen kaksi päähenkilöämme: Alicen ja Benjaminin. 0:01:35.182,0:01:40.365 Huomasitte varmaan vitsin — yleensä kryptografiassa puhumme Bobista, ei Benjaminista. 0:01:40.645,0:01:50.150 Mutta koska käytän norsuja selityksissä, nimesin hänet Benjaminiksi. 0:01:50.150,0:01:57.434 Ja jos ihmettelet, miksi käytän norsuja, ne eivät ole tavallisia norsuja, vaan Casa-fantteja. 0:01:57.434,0:02:04.748 Casa-fantit ovat CASA:n maskotteja. CASA tarkoittaa "Cyber Security in the Age of Large-Scale Adversaries". 0:02:04.960,0:02:10.252 Se on Ruhrin yliopiston huippuyksikkö kyberturvallisuuden tutkimuksessa. 0:02:10.553,0:02:15.595 Nyt Alice ja Benjamin haluavat kommunikoida turvattoman kanavan yli. 0:02:15.956,0:02:24.940 Ongelmana on kolmas osapuoli, pahantahtoinen Charlie, joka salakuuntelee heidän viestintäänsä. 0:02:25.361,0:02:31.564 Tietenkään Alice ja Benjamin eivät halua Charlien kuuntelevan heitä. 0:02:31.564,0:02:34.465 Metaforana voidaan ajatella, että he tekevät näin: 0:02:34.465,0:02:37.348 He laittavat viestin erittäin vahvaan laatikkoon. 0:02:37.348,0:02:40.390 Laatikon täytyy olla niin vahva, ettei Charlie pysty avaamaan sitä. 0:02:40.390,0:02:42.272 Sitten he laittavat laatikkoon lukon. 0:02:42.272,0:02:46.656 Lukon täytyy olla niin vahva, ettei kukaan, ei edes Charlie voi murtaa sitä. 0:02:46.656,0:02:48.958 Sen jälkeen he voivat lähettää laatikon toisilleen. 0:02:48.958,0:02:52.321 Heillä molemmilla on avain, jolla laatikon voi avata ja sulkea. 0:02:52.321,0:02:56.424 Näin he voivat viestiä keskenään ilman, että Charlie voi salakuunnella. 0:02:56.424,0:03:02.409 Tätä samaa halutaan saavuttaa digitaalisessa maailmassa symmetrisellä salauksella. 0:03:02.741,0:03:07.422 Symmetriseksi sitä kutsutaan siksi, että avain on molemmilla osapuolilla sama. 0:03:07.422,0:03:15.955 Jos on symmetrinen salaus, on olemassa myös epäsymmetrinen salaus, jota kutsutaan myös julkisen avaimen salaukseksi. Symmetristä kutsutaan joskus salaisen avaimen salaukseksi. 0:03:15.955,0:03:18.605 Epäsymmetrisellä salauksella luodaan avain molemmille puolille. 0:03:19.166,0:03:29.288 Tämän jälkeen käytetään symmetristä salausta varsinaiseen viestien salaamiseen. 0:03:30.901,0:03:35.022 Salausta käytetään nykyään lähes kaikkialla. 0:03:35.562,0:03:39.683 Puhelimellasi, kun kirjoitat viestin esimerkiksi Signaliin — viestit salataan. 0:03:39.683,0:03:43.815 Toinen hyvä esimerkki on HTTPS eli TLS. 0:03:43.815,0:03:51.487 Kun avaat verkkosivun, selaimen osoitepalkissa näkyy lukon kuva, ja siitä näet lisätiedot. 0:03:51.707,0:03:59.903 Siellä lukee esimerkiksi jotain tyyliin: TLS, AES ja muuta vastaavaa. 0:03:59.903,0:04:09.960 Symmetrisessä salauksessa meitä kiinnostaa erityisesti AES, koska se on lohkosalaus, ja ei mikä tahansa lohkosalaus, vaan se lohkosalaus. 0:04:09.960,0:04:12.632 AES tarkoittaa "Advanced Encryption Standard". 0:04:12.632,0:04:18.386 Se on todennäköisesti maailman käytetyin salausalgoritmi. 0:04:18.386,0:04:23.410 AES ottaa syötteenä 128-bittisen tekstin. 0:04:23.410,0:04:28.673 Tätä syötettä kutsutaan selkotekstiksi, ja AES muuntaa sen salatekstiksi. 0:04:28.971,0:04:35.023 Salateksti on myös 128-bittinen, ja muunnos perustuu salausavaimeen. 0:04:35.023,0:04:47.796 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. 0:04:47.796,0:04:51.727 Eli ilman avainta Charlie ei voi purkaa viestiä. 0:04:52.608,0:04:58.049 Se on jo itsessään erittäin hyödyllistä, mutta todellisessa maailmassa... 0:04:58.325,0:05:01.046 haluamme salata enemmän kuin vain yhden lohkon. 0:05:01.506,0:05:11.050 Siksi tarvitaan jotain, mitä kutsutaan toimintatavaksi (mode of operation), joka määrittelee, miten käsitellään useita lohkoja. 0:05:11.630,0:05:14.762 Kuten sanoin, AES on kehittynyt salausstandardi. 0:05:14.762,0:05:19.674 Se on standardi, jonka NIST määritteli 2000-luvun alussa. 0:05:19.674,0:05:26.256 Kyseessä on siis Yhdysvaltain standardi, ja siitä lähtien sitä on käytetty laajasti. 0:05:27.787,0:05:36.801 AES:n turvallisuustakuu on käytännössä se, ettei kukaan voi purkaa salausta ilman avainta. Mutta miksi näin on? 0:05:36.801,0:05:39.182 Miksi olemme niin varmoja, ettei kukaan voi tehdä sitä? 0:05:39.182,0:05:41.653 Koska kukaan ei ole vielä löytänyt toimivaa hyökkäystä. 0:05:41.653,0:05:50.296 Ei ole olemassa matemaattista todistetta, joka osoittaisi AES:n turvallisuuden, mutta kaikille tunnetuille hyökkäyksille se on osoittautunut vastustuskykyiseksi. 0:05:50.296,0:05:56.669 Siksi luotamme AES:iin, koska se on selvinnyt yli kahden vuosikymmenen ajan tutkimuksista. 0:05:57.631,0:06:05.267 Valitettavasti meillä ei ole aikaa käydä tänään läpi kaikkia yksityiskohtia tästä huippukiinnostavasta algoritmista. 0:06:05.267,0:06:13.792 Jos haluat tietää lisää, Christoph Parrin luento YouTubessa on ilmaiseksi katsottavissa kaikille. 0:06:13.913,0:06:23.940 Christoph on professori Bochumissa, ja kyseessä on kryptografian johdantoluento, jonka kyberturvallisuuden opiskelijat käyvät siellä. 0:06:23.940,0:06:26.281 Pieni sivuhuomautus. 0:06:26.337,0:06:31.279 Christoph on nykyään Bochumin Max Planck -instituutin perustajajohtaja. 0:06:31.279,0:06:34.180 Ja hän on todella hyvä. 0:06:35.081,0:06:45.265 Tässä oli siis lyhyt johdanto symmetriseen salaukseen, mutta tuskin olette täällä vain sen vuoksi. Olette täällä kuulemassa sotilasradiosta, eikö? 0:06:45.265,0:06:45.465 Niinpä. 0:06:45.465,0:06:49.177 Aloitetaan siis sotilasradiosta. 0:06:49.177,0:06:53.049 Aloitetaanpa näyttämällä teille tämä kuva. 0:06:53.049,0:06:54.069 Ja nyt... 0:06:54.295,0:07:02.749 Annan hetken aikaa miettiä, mikä on tämän kuvan ja tämän puheen eli sotilasradion välinen yhteys. 0:07:03.610,0:07:06.472 Itse asiassa mitään todellista yhteyttä ei ole. 0:07:06.472,0:07:14.396 Ainoa yhteys on minä itse, sillä otin tämän kuvan noin kaksi ja puoli vuotta sitten Ateenassa. 0:07:14.876,0:07:17.938 Olin Ateenassa ensimmäisessä tieteellisessä konferenssissani. 0:07:17.938,0:07:23.681 Kyseessä oli FSE, eli Fast Software Encryption -konferenssi, joka on 0:07:24.118,0:07:27.309 merkittävin konferenssi symmetrisessä kryptografiassa. 0:07:27.569,0:07:37.793 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. 0:07:37.793,0:07:42.355 Siellä konferenssissa osallistuin esitykseen, jonka nimi oli: "Cryptoanalysis of the SODA Cipher for HF Radio Automatic Link Establishment". 0:07:42.815,0:07:52.349 Tämä esitys kiinnitti huomioni, ja haluan lyhyesti selittää otsikon merkityksen. 0:07:52.349,0:07:53.333 Se esitys 0:07:53.333,0:07:56.564 herätti kiinnostukseni, ja selitän lyhyesti sen otsikon. 0:07:56.564,0:08:04.128 Esityksen piti Marco Stanzari, joka myöhemmin työskenteli kanssamme Half Loop -salauksen murtamisessa. 0:08:04.368,0:08:14.312 Otsikossa "cryptanalysis" tarkoittaa salauksen analysointia eli yritystä murtaa se tai arvioida sen turvallisuutta. 0:08:14.393,0:08:19.645 SODA on vain salauksen nimi, ja "cipher" tarkoittaa salausta. 0:08:19.871,0:08:25.554 Haluan kuitenkin puhua hieman HF-radiosta ja automaattisesta linkinmuodostuksesta. 0:08:27.115,0:08:28.815 Aloitetaan HF-radiosta. 0:08:28.815,0:08:42.069 HF tarkoittaa high frequency eli korkeataajuus. Kyseessä on 3–30 MHz välinen taajuusalue, joka mahdollistaa ns. skywave-ilmiön. 0:08:42.069,0:08:53.492 Skywave-ilmiössä radiosignaali heijastuu ylemmän ilmakehän hiukkasista takaisin maahan, jolloin se voi kulkea erittäin pitkiä matkoja. 0:08:53.492,0:08:56.923 Signaali voi jatkaa heijastumista uudelleen ja uudelleen. 0:08:56.979,0:09:01.102 Tämän vuoksi signaali voi kulkea todella pitkälle. 0:09:01.583,0:09:10.230 Tämän ansiosta viestintä onnistuu suurien etäisyyksien yli ilman mitään infrastruktuuria. 0:09:10.230,0:09:14.233 Et tarvitse satelliitteja, tukiasemia tai mitään muuta. 0:09:14.233,0:09:17.015 Tarvitset vain radiolaitteet molemmissa päissä. 0:09:17.295,0:09:20.098 Ketkä sitten ovat kiinnostuneita tällaisesta teknologiasta? 0:09:20.098,0:09:21.419 Tietysti armeija. 0:09:21.419,0:09:24.721 Myös diplomaatit ja kriisinhallintaviranomaiset. 0:09:24.721,0:09:27.003 On selvää, että jos 0:09:27.115,0:09:35.055 tapahtuu esimerkiksi maanjäristys, joka tuhoaa kaikki tukiasemat, tarvitaan viestintäjärjestelmä, joka ei vaadi infrastruktuuria. 0:09:35.055,0:09:37.675 Se on tällaisessa tilanteessa erittäin hyödyllinen. 0:09:38.295,0:09:48.935 HF-radion sisällä käytettiin SODA-salausta, jota Marco analysoi. Half Loop tuli sen tilalle ja sitä käytettiin käsienpuristussanomien salaamiseen. 0:09:48.935,0:09:57.055 Sen avulla pyrittiin varmistamaan viestinnän luottamuksellisuus ja aitous. 0:09:57.705,0:10:04.737 Puhutaanpa automaattisesta linkinmuodostuksesta, sillä kuten ehkä arvaat, HF-radio ei ole niin yksinkertainen. 0:10:04.737,0:10:07.340 Kyse ei ole vain siitä, että lähetät signaalin ja se toimii. 0:10:07.340,0:10:20.467 Todellisuudessa se on monimutkaista, ja vielä 80-luvun puoliväliin saakka tarvittiin erittäin taitavia operaattoreita molemmissa päissä, jotta yhteys saatiin muodostettua. 0:10:20.467,0:10:25.889 Tämän helpottamiseksi kehitettiin automaattinen linkinmuodostusprotokolla, lyhyesti ALE. 0:10:26.370,0:10:27.390 Ja siinä 0:10:27.422,0:10:30.063 Emme mene nyt yksityiskohtiin. 0:10:30.063,0:10:31.323 Yksinkertaistamme paljon. 0:10:31.323,0:10:35.764 Perusidea on, että alussa tapahtuu kolmivaiheinen kättely. 0:10:35.764,0:10:39.755 Tämä on hyvin yleistä viestinnässä. 0:10:39.755,0:10:44.167 Alice lähettää viestin, jossa hän sanoo "Hei, olen Alice" 0:10:44.167,0:10:45.667 ja haluan puhua Bobille. 0:10:45.667,0:10:49.258 Sitten Bob vastaa vastaavalla viestillä: "Olen Bob" 0:10:49.258,0:10:51.369 ja haluan viestiä Alicen kanssa. 0:10:51.369,0:10:54.590 Sitten Alice lähettää uudelleen viestin: "Olen Alice" 0:10:54.590,0:10:56.540 ja haluan viestiä kanssasi, Bob. 0:10:56.605,0:11:04.161 Tässä siis hyvin yksinkertaistettuna linkki muodostetaan ja viestintä alkaa. 0:11:04.161,0:11:07.664 Se voi olla ääntä, keskustelua tai dataa. 0:11:07.664,0:11:11.727 Esimerkiksi sähköposteja voidaan lähettää tämän kautta. 0:11:11.807,0:11:15.110 Viestintä jatkuu, ja lopuksi lähetetään lopetusviesti. 0:11:15.110,0:11:19.373 Alice sanoo: "Haluan lopettaa viestinnän nyt." 0:11:19.553,0:11:22.936 Kuten huomaat, tässä näkyy lukon kuva. 0:11:22.936,0:11:25.457 Tämä johtuu siitä, että nämä viestit 0:11:25.876,0:11:33.522 kättely- ja lopetusviestit salataan joko SODAK:lla tai Half Loopilla. 0:11:33.522,0:11:37.034 SODAK on Half Loopin edeltäjä. 0:11:37.375,0:11:45.241 Sitä käytettiin todennäköisesti vuoteen 2017 saakka, mutta nykyään viestit salataan Half Loopilla. 0:11:45.241,0:11:47.543 Miksi salaus tarvitaan tässä? 0:11:48.003,0:11:51.626 Kun kättelyviestit salataan vahvasti... 0:11:51.644,0:11:56.258 saadaan aikaan useita hyviä ominaisuuksia. 0:11:56.258,0:12:05.585 Ensinnäkin viestien luottamuksellisuus, eli kukaan ilman avainta ei tiedä, ketkä viestivät. 0:12:05.585,0:12:09.248 Kuten sanoin, viesti sisältää Alicen ja Bobin identiteetit. 0:12:09.248,0:12:13.532 Ilman salausta kuka tahansa näkisi, että Alice ja Bob viestivät keskenään. 0:12:13.532,0:12:18.415 Ja kyllä, tiedän että sanoin alussa että Bob on Benjamin, mutta ei se haittaa. 0:12:19.417,0:12:21.278 Toinen hyöty on 0:12:21.326,0:12:31.261 todennus. Jos Alice ja Bob käyttävät salaista avainta, vain he voivat purkaa viestin ja varmistaa, että se todella tuli toiselta osapuolelta. 0:12:31.261,0:12:42.357 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. 0:12:42.357,0:12:51.302 Et voi vain kuunnella toisia ja muodostaa yhteyttä mihin tahansa, joten todennus tukee myös saatavuutta. 0:12:51.954,0:12:54.175 Se auttaa varmistamaan viestinnän jatkuvuuden. 0:12:54.175,0:13:06.840 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 silti muodostaa linkin. 0:13:06.920,0:13:14.884 Voit lähettää tarvittavat kolme viestiä ja linkki muodostuu. Sitten Benjamin ei enää voi muodostaa yhteyttä Aliceen. 0:13:14.884,0:13:17.595 Tämäkin osoittaa, miksi salaus on tärkeää. 0:13:17.595,0:13:21.486 Se on yksi lisäsyy salauksen tarpeelle. 0:13:21.642,0:13:30.482 Lopuksi tällä dialla haluan korostaa, että Half Loop, eli salaus jonka aiomme murtaa seuraavaksi, käytetään vain kättely- ja lopetusviesteissä. 0:13:30.482,0:13:31.502 Ei siis varsinaisessa ääni- tai dataliikenteessä. 0:13:31.502,0:13:40.242 Kaikki mitä selitän koskee vain kättelyviestejä, ei varsinaista siirrettävää sisältöä kuten puhetta tai tiedostoja. 0:13:41.062,0:13:47.722 Mennään siis seuraavaksi itse Half Loop 24 -algoritmin yksityiskohtiin, eli algoritmiin, jonka me murtoimme. 0:13:48.222,0:13:49.531 Half Loop on itse asiassa... 0:13:49.531,0:13:53.322 määritelty jossain sotilasstandardissa. 0:13:54.443,0:14:03.597 Jos tunnet FIPS 197 -standardin, eli AES:n virallisen spesifikaation, tämä näyttää sinusta ehkä tutulta. 0:14:03.597,0:14:04.968 Tässä on useita vaiheita. 0:14:04.968,0:14:09.350 SubBytes, RotateRows, MixColumns ja AddRoundKey. 0:14:09.350,0:14:15.002 Nuo vaiheet ovat hyvin samankaltaisia kuin AES:ssä, koska Half Loop muistuttaa paljon AES:ää. 0:14:15.002,0:14:17.293 Ja jos mietit, onko tämä 0:14:17.545,0:14:19.285 dokumentti salainen tai jotain sellaista, 0:14:19.285,0:14:20.045 niin ei ole. 0:14:20.045,0:14:20.725 Se on julkinen. 0:14:20.725,0:14:29.045 Kuten mainitsin, olin Ateenassa, ja Marcos piti esityksen Half Loopin edeltäjästä. 0:14:29.425,0:14:33.725 Esityksen lopussa hän mainitsi, että nyt käytetään tätä Half Loop -salausta. 0:14:33.725,0:14:35.705 Kysyin, onko se julkinen? 0:14:35.705,0:14:36.425 Hän sanoi kyllä. 0:14:36.425,0:14:37.885 Sen voi vain etsiä Googlesta. 0:14:37.885,0:14:42.385 Sieltä löytyy Yhdysvaltain puolustusministeriön sivu, josta PDF:n voi ladata. 0:14:42.385,0:14:43.725 Täytyy vain selata alaspäin. 0:14:43.725,0:14:45.673 Ehkä noin 300 sivua. 0:14:45.673,0:14:49.833 Liitteessä G on Half Loopin spesifikaatio. 0:14:51.033,0:15:03.373 Annan nyt lisää yksityiskohtia. Half Loopista on kolme versiota: 24, 48 ja 96. Tässä tarkastellaan versiota 24. Tämä numero tarkoittaa lohkon kokoa. 0:15:03.373,0:15:04.373 Eli lohkon koko on 24 bittiä. 0:15:04.373,0:15:14.393 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. 0:15:14.393,0:15:14.985 Ja 0:15:14.985,0:15:17.626 muut versiot jätetään tämän esityksen ulkopuolelle. 0:15:17.966,0:15:26.429 Half Loop on niin sanottu "tweakable" lohkosalaus, ja tässä diassa kutsun sitä kirjaimella E, koska en halua kirjoittaa "Half Loop" joka paikkaan. 0:15:27.170,0:15:38.645 Kuten mainitsin, se korvasi Sodak-salauksen. Sivuhuomautuksena: Sodak käytti vain 56-bittisiä avaimia, ja jos tiedät jotain kryptografiasta, 56 bittiä ei riitä. 0:15:38.645,0:15:41.416 Sen pystyy helposti murtamaan brutaalilla voimalla. 0:15:41.416,0:15:44.997 Jos todella haluat, voit murtaa sen helposti. 0:15:45.501,0:15:56.706 Ensisilmäyksellä on hyvä, että vuodesta 2017 alkaen Half Loop on ollut virallisesti määritelty, ja siinä käytetään 128-bittistä avainta. 0:15:56.706,0:16:06.691 Oikealla olevassa kuvassa näkyy 24-bittinen selkoteksti, 24-bittinen salattu teksti ja 128-bittinen avain. 0:16:06.691,0:16:12.763 Mutta toisin kuin AES:ssä, tässä on lisäsyöte nimeltä T, joka on niin sanottu tweak. 0:16:12.997,0:16:19.841 Tweak koostuu nykyisestä ajasta, sanalaskurista ja käytetystä radiotaajuudesta. 0:16:20.222,0:16:29.969 Puhumme tästä lisää hetken kuluttua, mitä se tarkoittaa ja miksi se on hyödyllinen ominaisuus. 0:16:30.410,0:16:41.537 Kuten sanoin, Half Loop on vahvasti inspiroitunut AES:stä. Aluksi se voi tuntua hyvältä asialta, mutta yksityiskohdilla on merkitystä. 0:16:42.501,0:16:48.486 Miksi voidaan sanoa, että se on vahvasti inspiroitunut AES:stä? 0:16:48.486,0:16:50.408 Koska se käyttää samoja komponentteja. 0:16:50.408,0:17:02.307 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. 0:17:02.307,0:17:02.607 Yleensä. 0:17:02.607,0:17:09.342 He käyttävät samaa S-Boxia, mikä on järkevää, koska AES:n S-Box on vahva. 0:17:09.443,0:17:12.169 He käyttävät myös lähes samaa avainlaajennusta eli key schedulea. 0:17:12.169,0:17:17.889 Jos et tiedä mitä key schedule tarkoittaa, ei hätää. Käymme sen läpi pian. 0:17:18.249,0:17:31.149 AES:ssä tila on 16 tavua eli 128 bittiä, kirjoitettuna yleensä 4x4-matriisina. Half Loopissa se on kutistettu 3x1-matriisiksi. 0:17:31.149,0:17:35.429 Jokainen matriisin kohta on 1 tavu eli elementti joukossa F2^8. 0:17:36.109,0:17:40.709 AES:ssä käytetään 10 kierrosta, ja sama pätee täällä. 0:17:42.376,0:17:43.597 Nyt meillä on tämä valmis. 0:17:43.597,0:17:46.089 Haluan kertoa lisää tästä tweakista. 0:17:46.089,0:17:47.340 Miksi tarvitsemme sen? 0:17:47.340,0:17:48.141 Miksi tarvitsemme sen? 0:17:48.141,0:17:50.103 Tai miksi haluamme tweakattavan lohkosalauksen? 0:17:50.103,0:17:53.596 Katsotaanpa kuuluisaa ECB-Tux-esimerkkiä. 0:17:53.596,0:17:59.351 Mitä tapahtuu, jos salaamme kuvan käyttäen ECB-tilaa eli electronic codebook -tilaa? 0:17:59.852,0:18:07.228 Muistathan, että AES tai muut lohkosalaimet salaavat yhden lohkon kerrallaan. 0:18:07.228,0:18:08.709 Mutta yleensä kuva... 0:18:09.145,0:18:16.461 on useampaa lohkoa. Kuvitellaan esimerkin vuoksi, että yksi lohko vastaa yhtä pikseliä. 0:18:16.561,0:18:26.699 Jos salaat jokaisen pikselin samalla avaimella ja ilman yhteyttä lohkojen välillä, eli electronic codebook -tilassa, niin silloin... 0:18:26.699,0:18:30.512 Lyhyesti sanottuna, ECB:n kanssa salattu kuva näyttää tältä. 0:18:31.073,0:18:33.585 Ja tietenkään tämä ei ole turvallista salausta, eikö? 0:18:33.585,0:18:38.789 Turvallinen salaus tarkoittaa, että alkuperäisestä viestistä ei paljastu mitään tietoa. 0:18:38.993,0:18:45.448 Mutta tässä on selvästi nähtävissä, että kyseessä on Tux-kuva. 0:18:45.989,0:18:55.755 Yleensä käytetään jotain toimintatilaa, kuten GCM. Esimerkiksi HTTPS:ssä käytetään GCM:ää. 0:18:56.117,0:19:03.353 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. 0:19:03.353,0:19:07.995 Jos käytät tweakattavaa lohkosalausta ECB-tilassa, saat... 0:19:07.995,0:19:08.995 halutun lopputuloksen. 0:19:08.995,0:19:12.577 Saat vain kohinaa, eikä mitään tietoa paljastu. 0:19:12.798,0:19:19.161 Tweak on lisäsyöte, joka muuttuu vaikka selkoteksti ei muuttuisi. 0:19:19.161,0:19:27.026 Jos meillä on valkoinen pikseli ja toinen samanlainen valkoinen pikseli, saadaan ilman tweakia sama salattu tulos. 0:19:27.026,0:19:36.931 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. 0:19:37.137,0:19:40.228 Tällöin saadaan taas turvallinen ja hyödyllinen lopputulos. 0:19:40.228,0:19:44.009 Ja tulos on taas turvallinen. 0:19:44.609,0:19:55.122 Lisäksi kannattaa käyttää esimerkiksi laskuria, jotta kun salataan eri kuvia, samassa kohdassa olevat pikselit eivät tuota samaa salaustulosta. 0:19:55.122,0:19:58.527 Mutta se on vain sivuhuomautus. 0:19:58.573,0:20:06.015 Mennään nyt syvemmälle ja tarkastellaan teknisesti Half Loop 24:n kierrosfunktiota. 0:20:06.279,0:20:14.099 Nämä ovat operaatioita, jotka toistetaan uudelleen ja uudelleen. Half Loopissa niitä suoritetaan 10 kertaa. 0:20:14.519,0:20:17.799 Näiden jälkeen saadaan salattu tulos eli ciphertext. 0:20:17.799,0:20:23.799 Vasemmalla puolella on syöte, eli joko selkoteksti tai nykyinen tila, jos ei olla ensimmäisellä kierroksella. 0:20:23.939,0:20:29.859 Tämä on 24 bittiä, joka jaetaan kolmeen tavuun, eli 3 kertaa 8 bittiä. 0:20:30.319,0:20:33.259 Ensimmäinen vaihe on kierrosavaimen lisäys. 0:20:33.259,0:20:35.718 Kierrosavain johdetaan 0:20:35.718,0:20:42.943 128-bittisestä pääavaimesta, ja se yhdistetään tilaan XOR-operaatiolla, eli eksklusiivisella TAI-operaatiolla. 0:20:42.943,0:20:44.505 Tämä tehdään jokaiselle bitille. 0:20:44.505,0:20:47.207 Jos bitit ovat samat, tulos on nolla. 0:20:47.207,0:20:52.710 Jos bitit ovat eri, tilabitti ja avainbitti, tulos on yksi. 0:20:53.271,0:21:03.198 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. 0:21:03.290,0:21:08.251 Syöte on 8-bittinen, joten mahdollisia arvoja on 256. 0:21:08.371,0:21:11.822 Taulukossa on jokaiselle syötteelle oma ulostuloarvo. 0:21:11.822,0:21:20.735 Turvallisuuden kannalta taulukon sisältö on tärkeä, mutta meille se ei ole nyt oleellista. 0:21:21.315,0:21:27.017 Seuraava vaihe on lineaarikerros, joka koostuu kahdesta osasta. 0:21:27.017,0:21:30.698 Ensimmäinen on RotateRow, joka tekee 0:21:31.718,0:21:42.278 bittien kierron jokaisessa tavussa. Sitten MixedColumn, joka voidaan kuvata matriisikertolaskuna binäärisellä 24x24-matriisilla. 0:21:42.278,0:21:45.378 Koska toimimme biteillä, laskut ovat XOR-operaatioita. 0:21:45.378,0:21:56.258 Toisin sanoen, kaikki lasketaan modulo 2, eli jokaisen bitin lopputulos on joko 0 tai 1. 0:21:56.258,0:22:00.178 Lopputulos on taas 24 bittiä. 0:22:00.178,0:22:01.592 24-bittinen tulos. 0:22:01.592,0:22:02.943 Uusi tila saadaan tästä. 0:22:03.183,0:22:05.245 Tehdään lyhyt esimerkki. 0:22:05.245,0:22:09.799 Syöte on 0x01, 0x02 ja 0x03 heksadesimaaleina. 0:22:09.799,0:22:14.953 0 tarkoittaa 8 nollabittiä, 1 on kolme nollabittiä ja yksi ykkönen lopussa. 0:22:14.953,0:22:19.596 Meillä on myös kierrosavain, ja ensimmäinen vaihe on kierrosavaimen lisäys. 0:22:19.877,0:22:22.619 Tässä on sen operaation tulos. 0:22:22.619,0:22:29.925 Jos meillä on 0x7F ja 0x01, vähiten merkitsevä bitti käännetään, jolloin tulokseksi tulee 0x7E. 0:22:30.346,0:22:31.046 Ja nyt 0:22:31.046,0:22:38.686 Tässä diassa en tietenkään näytä kaikkia 256 S-boxin arvoa, mutta 0x7E löytyy, ja katsotaan mitä saadaan. 0:22:38.686,0:22:41.626 Syöte on 0x7E, ja ulostulo on 0xF3. 0:22:41.666,0:22:43.806 Aika yksinkertaista, vai mitä? 0:22:43.806,0:22:54.086 Lineaarikerros voi olla hieman vaikeampi ymmärtää, mutta luota siihen, että matriisikertolaskun tuloksena saadaan tämä uusi tila. 0:22:54.086,0:22:54.186 Niin? 0:22:54.186,0:22:59.286 Kun tehdään välivaiheet, näet täällä rotaation ja sen jälkeen MixedColumn-vaiheen. 0:22:59.286,0:23:00.282 MixedColumn on myös... 0:23:00.282,0:23:01.923 operaatio AES:ssä. 0:23:03.684,0:23:06.606 Tämän jälkeen saadaan tämä ulostulo. 0:23:06.847,0:23:09.228 Kuten sanoin, Half Loopissa on 10 kierrosta. 0:23:09.228,0:23:13.231 Eli tämä kierrosfunktio suoritetaan 10 kertaa. 0:23:13.231,0:23:20.016 Ensimmäisessä kierroksessa lisätään kierrosavain 0, tehdään S-box, lineaarikerros ja siirrytään seuraavaan kierrokseen. 0:23:20.016,0:23:27.361 Lisätään kierrosavain 1, tehdään S-box, lineaarikerros ja niin edelleen. 0:23:27.361,0:23:29.648 Tämä toistetaan 10 kertaa, mutta 0:23:29.648,0:23:35.280 viimeinen kierros on hieman erilainen, koska lineaarikerros ei enää tuo lisäturvaa, joten se voidaan jättää pois. 0:23:35.280,0:23:40.793 Lisätään kuitenkin vielä yksi kierrosavain, muuten hyökkääjä voisi laskea takaisinpäin. 0:23:40.793,0:23:43.644 Tarvitaan siis avaimen lisäys aivan lopussa. 0:23:43.844,0:23:44.924 Siinä on koko Half Loop. 0:23:44.924,0:23:46.285 Tässä on koko algoritmi. 0:23:46.285,0:23:51.747 Syötetään selkoteksti vasemmalta, tehdään 10 kierrosta ja saadaan salattu teksti. 0:23:52.187,0:23:57.540 Mutta yksi asia puuttuu — en ole vielä selittänyt, miten kierrosavaimet saadaan, eikö niin? 0:23:57.540,0:23:58.470 Eli tietenkin... 0:23:58.470,0:24:00.930 Meillä on pääavain, mutta miten kierrosavaimet saadaan? 0:24:00.930,0:24:03.029 Tätä varten käytetään avainlaajennusta eli key schedulea. 0:24:03.690,0:24:10.150 Avainlaajennus on lainattu AES:stä pienin poikkeuksin — oikeastaan kahdella poikkeuksella. 0:24:10.150,0:24:13.950 Ensinnäkin kierrosavaimia tarvitaan vähemmän, joten määrä on pienempi. 0:24:13.990,0:24:19.830 Toiseksi meillä on tweak, joka XORataan alussa. Avain jaetaan kahteen osaan. 0:24:19.830,0:24:24.390 Ensimmäiset 64 bittiä ja loput 64 bittiä. 0:24:24.390,0:24:27.430 Ensimmäiseen 64 bittiin lisätään tweak T. 0:24:27.430,0:24:28.582 Tämä on siis 0:24:28.582,0:24:33.422 käytetty taajuus, aikaleima ja sanalaskuri. 0:24:33.662,0:24:38.442 Tämä XORataan avaimen ensimmäiseen osaan ja sitten suoritetaan AES-tyyppinen avainlaajennus. 0:24:38.442,0:24:41.002 AES:n key schedule on melko yksinkertainen. 0:24:41.002,0:24:47.782 Siinä käytetään XOR-operaatioita 32-bittisille sanoille, ja se on FISO-tyyppinen verkko. 0:24:48.142,0:24:49.542 Käytetään funktiota G. 0:24:49.542,0:24:57.022 Siitä ei tarvitse huolehtia, mutta siinä on lisää S-boxeja ja bittien uudelleenjärjestelyä. 0:24:57.166,0:24:58.797 Miten kierrosavaimet sitten saadaan? 0:24:58.797,0:25:05.992 Otetaan ensimmäiset 24 bittiä kierrosavaimeksi 0, seuraavat 24 bittiä kierrosavaimeksi 1 ja niin edelleen. 0:25:06.293,0:25:08.594 Lopulta jää yksi tavu jäljelle. 0:25:08.594,0:25:12.717 Sitten suoritetaan AES-avainlaajennus uudelleen. 0:25:12.717,0:25:13.878 Saadaan uusi tila. 0:25:13.878,0:25:19.061 Otetaan taas bitit käyttöön — jatketaan vain bittien käyttämistä. 0:25:19.442,0:25:21.453 Ja sitten ollaankin jo melkein valmiita. 0:25:21.453,0:25:23.865 Kierrosavain 10:stä on kasassa kaksi tavua. 0:25:23.865,0:25:25.733 Tarvitaan vielä yksi tavu. 0:25:25.733,0:25:33.818 Toistetaan funktio, mutta säilytetään vain ensimmäinen tavu ja hylätään loput. 0:25:34.239,0:25:41.223 Nyt meillä on kaikki 264 bittiä, eli 24 bittiä kertaa 11 kierrosta. 0:25:42.324,0:25:43.264 Selvä. 0:25:43.525,0:25:48.688 Nyt kun tiedämme, miten Half Loop toimii, katsotaan itse hyökkäystä. 0:25:49.209,0:25:54.446 Tämä hyökkäys perustuu kahteen tutkimusjulkaisuun. 0:25:54.446,0:26:06.719 Ensimmäinen artikkeli on "Breaking Half Loop 24", yhteistyössä Markus Dansarin kanssa, joka esitteli Sodakin — Half Loopin edeltäjän — joka alun perin kiinnitti huomiomme. 0:26:06.719,0:26:11.220 Mukana oli myös Patrick Derbez Ranskasta ja ohjaajani Gregor Leander Bochumista. 0:26:11.601,0:26:21.534 Artikkelin lopputulos oli, että Half Loop 24 ei ole turvallinen. Meillä on toimiva hyökkäys, ja se on varsin vahva hyökkäys. 0:26:21.534,0:26:23.244 Sanotaanko näin... 0:26:24.088,0:26:32.113 Teoreettisesti katsoen, sanoimme että salaus voidaan murtaa, jos hyökkääjä voi salakuunnella 500 vuoden ajan. 0:26:32.214,0:26:42.761 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. 0:26:43.021,0:26:52.652 Esitin tämän artikkelin viime vuonna Japanissa, FSE-konferenssissa, joka on Fast Software Encryption -konferenssi. 0:26:52.652,0:27:02.719 Kollegani Sharam, joka on nyt takaisin Bochumissa mutta tuolloin oli Nijmegenissä Alankomaissa, tuli luoksemme ja sanoi, että hyökkäystä voitaisiin ehkä parantaa. 0:27:02.719,0:27:03.440 Hyökkäystä voisi parantaa. 0:27:03.440,0:27:05.601 Panostimme siihen lisää aikaa. 0:27:05.601,0:27:09.804 Ja huomasimme, että sitä voi parantaa merkittävästi. 0:27:09.944,0:27:14.167 Tietenkin koska olemme akateemisessa maailmassa, kirjoitimme uuden artikkelin. 0:27:14.167,0:27:19.671 Esitin sen tänä vuonna FSE-konferenssissa Leuvenissa. 0:27:19.671,0:27:21.852 Saimme myös parhaimman paperin palkinnon. 0:27:21.976,0:27:24.997 Mikä oli tietysti meille todella hienoa. 0:27:25.578,0:27:35.422 Ennen kuin menemme yksityiskohtiin, haluan korostaa että kryptografiset hyökkäykset voivat tuntua oudoilta, koska hyökkääjät ovat todella voimakkaita. 0:27:35.422,0:27:45.295 Hyökkäyksissä hyökkääjällä, esimerkiksi Charliella, on usein oikeus pyytää Alicelta viestien salaamista, vaikka Alice säilyttää salaisen avaimen. 0:27:45.295,0:27:49.767 Charlie voi siis pyytää Alicea salaamaan jonkin selkotekstin. 0:27:49.987,0:27:51.714 Ja Alice tekee sen. 0:27:51.714,0:27:55.266 Tämä on tietysti hieman outoa, koska oikeassa elämässä näin ei pitäisi tapahtua. 0:27:55.266,0:27:59.849 Charlie ei voi vain mennä Alicen luo ja pyytää, että "salaisitko tämän puolestani". 0:27:59.989,0:28:03.632 Mutta se menee vielä oudommaksi: Charlie voi myös pyytää purkamaan salauksen. 0:28:03.632,0:28:07.454 Charlie voi sanoa "puratko tämän salatekstin C:n". 0:28:07.454,0:28:13.238 Alice vastaa selkotekstillä P, eli antaa alkuperäisen viestin. 0:28:13.458,0:28:15.319 Tätä jatketaan uudestaan ja uudestaan. 0:28:15.319,0:28:19.942 Lopulta Charlie yrittää ehkä selvittää salaisen avaimen. 0:28:21.185,0:28:31.078 Voisimme tehdä asiat vielä hullummiksi ja sanoa, että Charlie yrittää vain erottaa käyttikö Alice oikeaa salausta vai täysin satunnaista järjestelmää. 0:28:31.078,0:28:32.018 Täysin satunnaista järjestelmää. 0:28:32.298,0:28:35.539 Mutta oletetaan, että Charlie yrittää selvittää avaimen. 0:28:35.539,0:28:39.600 Saatat miettiä, miksi hyökkääjät esitetään näin voimakkaina. 0:28:39.640,0:28:46.182 Syynä on se, että jos salaus kestää näin voimakkaita hyökkääjiä, voimme luottaa siihen entistä enemmän. 0:28:46.182,0:28:50.187 On monia esimerkkejä siitä, että tätä ei alun perin suunniteltu. 0:28:50.187,0:29:02.355 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. 0:29:02.355,0:29:12.922 Jos järjestelmäsi on turvallinen tällaisia hyökkäyksiä vastaan, olet hyvällä tiellä. Ja nyt viimeinen puuttuva palanen on differentiaalikryptoanalyysi. 0:29:12.922,0:29:20.159 Emme tietenkään mene tämän keskeisen menetelmän kaikkiin yksityiskohtiin. Se kehitettiin 1990-luvun alussa Bihamin ja Shamirin toimesta. 0:29:31.486,0:29:38.119 Muuten, Shamir-nimi voi kuulostaa tutulta — hän on sama henkilö kuin Shamirin salausjakojärjestelmässä ja RSA:ssa. 0:29:38.119,0:29:40.100 RSA:n S-kirjain tulee Shamirista. 0:29:40.100,0:29:43.552 Shamir oli erittäin aktiivinen ja arvostettu kryptografi. 0:29:43.553,0:29:46.714 He kehittivät differentiaalikryptoanalyysin. 0:29:46.934,0:29:48.301 Idea siinä on... 0:29:48.301,0:29:53.153 että ei katsota vain yhtä selkoteksti–salateksti-paria, vaan myös toista selkotekstiä. 0:29:53.153,0:29:59.616 Tässä on selkoteksti P ja toinen selkoteksti, joka on P XOR delta — niillä on siis tietty ero. 0:29:59.616,0:30:03.718 Eli kaksi selkotekstiä eroavat toisistaan tietyllä erotuksella delta. 0:30:03.718,0:30:10.101 Tässä käytän pientä delta-merkkiä kuvaamaan tätä arvoa. 0:30:10.101,0:30:15.713 Yleisesti käytämme isoa deltaa, kolmion muotoista merkkiä, osoittamaan että puhumme erotuksesta. 0:30:15.715,0:30:18.976 Delta P tarkoittaa P:n ja P XOR deltan välistä erotusta. 0:30:18.976,0:30:22.677 Koska kyseessä on XOR, P XOR P XOR delta antaa erotukseksi delta. 0:30:22.677,0:30:31.979 Koska P XOR P on nolla, jäljelle jää delta. Differentiaalikryptoanalyysin idea on syöttää tietty ero sisään ja toivoa, että ulostulosta voi päätellä jotakin. 0:30:32.179,0:30:42.921 Eli käytetään tarkasti määriteltyä erotusta syötteenä ja katsotaan, paljastuuko jotain salatusta tekstistä tai sen erotuksesta. 0:30:42.921,0:30:45.442 Ja saadaanko siitä hyödyllistä tietoa. 0:30:45.570,0:30:51.590 Merkintätavasta: emme näytä molempia salausajoja dioissa, vaan vain yhden ja sen erotuksen. 0:30:51.590,0:30:55.290 Näytämme vain sen erotuksen, joka kiinnostaa meitä. 0:30:55.710,0:31:04.090 Ja itse asiassa analyysiä ei tarvitse tehdä koko algoritmille — riittää, että se tehdään vain osalle algoritmista. 0:31:04.970,0:31:05.790 Selvä. 0:31:05.910,0:31:09.130 Nyt meillä on kaikki mitä tarvitsemme ja voimme siirtyä itse hyökkäykseen. 0:31:09.130,0:31:11.790 Mennään siis vielä teknisemmälle tasolle. 0:31:11.870,0:31:13.410 Tämän kuvan olet jo nähnyt. 0:31:13.410,0:31:15.170 Kyseessä on taas avainlaajennus. 0:31:15.170,0:31:21.262 Half Loopissa meillä on syötteenä paitsi selkoteksti myös tweak. 0:31:21.262,0:31:24.953 Oletetaan nyt, että hyökkääjä voi myös hallita tätä tweakia. 0:31:24.953,0:31:26.533 Käytännössä näin ei tietenkään ole. 0:31:26.533,0:31:29.934 Mutta oletetaan aluksi, että voimme hallita sitä täysin. 0:31:29.934,0:31:36.936 Katsotaan myöhemmin, miten tämä voidaan toteuttaa käytännössä. 0:31:37.056,0:31:40.507 Seuraavaksi asetamme eron tweak-arvoon. 0:31:40.507,0:31:44.078 Tässä kolmas tavu on se, jossa ero delta on. 0:31:44.918,0:31:53.604 Tweak on 64-bittinen ja kaikki muut tavut paitsi kolmas ovat nollia. Ero on siis vain kolmannessa tavussa. 0:31:53.765,0:32:00.449 Salaamme siis kaksi selkotekstiä, ja tweakit ovat samanlaisia paitsi kolmannen tavun kohdalla. 0:32:00.710,0:32:04.672 Nyt haluamme selvittää, mitä tapahtuu kierrosavaimille. 0:32:05.093,0:32:07.445 Tämä on itse asiassa melko yksinkertaista. 0:32:07.445,0:32:11.850 Jos ero on kolmannessa tavussa, myös ensimmäisen kierroksen avaimen kolmannessa tavussa on ero. 0:32:11.850,0:32:12.790 Eli ensimmäinen kierrosavain 0:32:12.790,0:32:17.474 on muuten sama, mutta kolmannessa tavussa on delta. 0:32:17.474,0:32:23.818 Kaikki muut ensimmäisen kierroksen bitit pysyvät samoina, koska ero on vain kolmannessa tavussa. 0:32:24.099,0:32:29.563 Seuraavaksi sovelletaan avainlaajennuksen kierrosfunktiota. 0:32:29.763,0:32:33.196 Koska käytössä on XOR, ero jatkaa etenemistään. 0:32:33.196,0:32:36.318 Meillä on delta tässä, ja sitten delta myös tässä. 0:32:36.318,0:32:39.170 Eli ei eroa muissa kierrosavaimissa, 0:32:39.170,0:32:43.290 mutta kierrosavain 6:n ensimmäisessä tavussa ero ilmenee taas. 0:32:43.290,0:32:55.530 Eli jos salaamme P ja P-prime, joissa on eri tweakit, niin kierrosavaimen 6 ensimmäinen tavu eroaa näiden salausten välillä. 0:32:55.530,0:32:57.310 Ja sitten, oho, anteeksi. 0:32:57.650,0:33:06.170 Ero etenee edelleen, joten myös kierrosavaimissa 7, 8 ja 9 on yhden tavun ero. 0:33:06.170,0:33:09.150 Ja jos ihmettelet, 0:33:09.686,0:33:14.787 Tämä data ei vaikuta muihin kohtiin, joten ne pysyvät samoina. 0:33:14.987,0:33:19.749 Nyt tarkastellaan Half Loopin koko rakennetta uudelleen. 0:33:19.749,0:33:25.090 Punaisella näkyvät ne kierrosavaimet, jotka eroavat näiden kahden salausajon välillä. 0:33:25.090,0:33:27.311 Voit jopa merkitä tarkat tavujen paikat. 0:33:27.311,0:33:31.672 Ero ilmestyy tänne, tänne, tänne, tänne ja tänne. 0:33:32.172,0:33:39.378 Hyökkäyksen tärkein vaihe on käyttää sellaista selkotekstiparia, jonka erotus vastaa tätä rakennetta. 0:33:39.378,0:33:42.949 Eli käytämme selkotekstejä, joiden kaksi ensimmäistä tavua ovat samat ja kolmas tavu eroaa delta-arvolla. 0:33:42.949,0:33:51.021 Delta voi olla mikä tahansa yhden tavun arvo, kunhan se ei ole nolla. 0:33:51.021,0:33:54.022 Kaikki paitsi nolla kelpaavat. 0:33:54.562,0:34:00.224 Erotukset kumoavat toisensa ja saamme tilan erotukseksi ison deltan nolla. 0:34:00.224,0:34:07.522 Tämä tarkoittaa, että ensimmäisen kierrosavaimen jälkeen salauksissa tila on sama, vaikka tweakit ja selkotekstit olivat eri. 0:34:07.522,0:34:10.162 Eli ensimmäisen kierrosavainvaiheen jälkeen tila on identtinen. 0:34:10.382,0:34:16.362 Jos syöte S-boxiin on sama, myös S-boxin ulostulo on sama. 0:34:16.382,0:34:20.722 Jos lineaarikerroksen syöte on sama, sen ulostulo on myös sama. 0:34:20.722,0:34:26.422 Jos syöte avaimenlisäykseen on sama ja kierrosavain on sama, myös tulos on sama. 0:34:26.422,0:34:31.622 Tämä toistuu kierrokseen 6 asti. Vasta silloin ero alkaa näkyä. 0:34:31.622,0:34:37.666 Ensimmäiset kuusi kierrosta voidaan käytännössä ohittaa ilmaiseksi. 0:34:37.666,0:34:45.866 Eli Half Loop 24 -algoritmissa, jossa on 10 kierrosta, voimme differentiaalihyökkäyksessä ohittaa 6 kierrosta. 0:34:45.866,0:34:47.946 Se ei tietenkään ole hyvä asia. 0:34:48.046,0:34:52.506 Meidän tarvitsee hyökätä vain jäljelle jääviä neljää kierrosta vastaan. 0:34:53.786,0:35:03.666 Kun tarkastelemme näitä neljää viimeistä kierrosta, tiedämme että näillä kahdella selkotekstillä ja eri tweak-arvoilla on erityinen yhteys. 0:35:03.666,0:35:05.836 Tässä kohdassa tiloissa ei ole vielä eroja. 0:35:05.836,0:35:09.207 Tilojen välillä ei ole eroja, joten ero on nolla. 0:35:09.508,0:35:15.410 Seuraavaksi ero tuodaan mukaan kierrosavainten avulla. 0:35:15.410,0:35:18.001 Täällä aivan lopussa ilmestyy viimeinen ero. 0:35:18.001,0:35:21.272 Ja oikealla puolella on lopullinen salattu teksti. 0:35:21.272,0:35:27.275 Koska voimme vaihtaa lineaarikerroksen ja kierrosavaimen lisäyksen paikkaa, 0:35:27.275,0:35:35.328 voimme ajatella, että sovelletaan ensin lineaarikerroksen käänteisfunktiota kierrosavaimeen ja sitten lisätään se. 0:35:35.850,0:35:37.911 Tällöin ero esiintyy tässä kohdassa. 0:35:38.132,0:35:40.113 Ja nyt voimme laskea. 0:35:40.113,0:35:48.878 Kuinka monta bittitietoa avaimesta tarvitaan, jotta voimme laskea salauksen takaisin ja saada selville tämän erotuksen? 0:35:48.898,0:35:53.981 Tarvitsemme selvästi kierrosavaimet 10, 9 ja 8. 0:35:53.981,0:36:01.558 Mutta kierrosavaimeen 7 tarvitaan vain ensimmäinen tavu, kun sovelletaan lineaarikerroksen käänteisfunktiota. 0:36:01.558,0:36:06.620 Tällä tavoin saamme tietoomme tämän erotuksen. 0:36:07.681,0:36:09.561 Kuinka monta bittiä tämä sitten on? 0:36:09.561,0:36:15.264 Kolme tavua täältä, kolme täältä, kolme täältä ja yksi täältä. Yhteensä siis 10 tavua eli 80 bittiä. 0:36:15.264,0:36:19.245 80 bittiä on paljon, jos haluaa tehdä brute force -hyökkäyksen, mutta vähemmän kuin 128 bittiä. 0:36:19.465,0:36:27.359 Joten tämä hyökkäys murtaa Half Loopin — ainakin teoreettisesti. 0:36:27.359,0:36:30.830 Tämä tarkoittaa, että hyökkäyksellä voidaan murtaa salaus. 0:36:30.956,0:36:33.597 Ainakin teoriassa. 0:36:33.597,0:36:38.488 Hyökkäys toimii niin, että arvataan kaikki nämä 80 bittiä. 0:36:38.488,0:36:44.550 Symmetrisessä kryptografiassa arvaaminen tarkoittaa, että käydään kaikki mahdollisuudet läpi silmukassa. 0:36:44.550,0:36:48.931 Sitten lasketaan salaus takaisinpäin ja tarkistetaan, onko ero nolla. 0:36:48.931,0:36:53.652 Jos ero on nolla, avain on mahdollinen ehdokas, jota pitää tutkia lisää. 0:36:53.652,0:36:55.343 Jos ei ole, se hylätään. 0:36:55.343,0:36:59.374 Tällöin tiedämme, ettei kyseinen 80 bittiä ole oikea avain. 0:36:59.454,0:37:00.833 Sitten toistetaan prosessi. 0:37:00.833,0:37:06.593 Useilla selkoteksti–salateksti-pareilla lopulta löydämme oikean 80-bittisen avainyhdistelmän. 0:37:06.593,0:37:10.813 Eli hyökkäys toimii 2^80 laskennalla ja kuudella kyselyllä. 0:37:10.953,0:37:17.773 Kyselyt tarkoittavat viestejä, jotka Charlie lähettää Alicelle — selkoteksti ja salattu teksti. 0:37:17.773,0:37:19.193 Tämä on itse asiassa optimaalista. 0:37:19.193,0:37:29.909 Yksityiskohtiin menemättä on helppo osoittaa, että edes brute force -hyökkäys ei onnistu viidellä kyselyllä, koska vaihtoehtoja jää liikaa. 0:37:29.909,0:37:34.571 Tarvitaan siis vähintään kuusi kyselyä. 0:37:34.571,0:37:36.491 Mutta 2^80 on edelleen paljon. 0:37:36.812,0:37:41.373 Se vastaa suurin piirtein Bitcoin-verkon päivittäistä laskentatehoa. 0:37:41.613,0:37:45.135 Emme voi tehdä tätä yliopiston tietokoneella, mutta hyökkäystä voidaan parantaa. 0:37:45.135,0:37:50.807 Voidaan tehdä esilaskenta ja kokeilla vain kierrosavaimia 10 ja 9. 0:37:50.807,0:37:59.040 Tehdään etukäteen hakutaulukko, sitten haetaan sieltä ja tarkistetaan, toimiiko avain vai ei. 0:37:59.040,0:38:04.960 Tätä voi vielä parantaa, jos sallitaan kaksi lisäkyselyä — silloin tarvitsee vain 2^48 laskentaa. 0:38:04.960,0:38:07.280 2^48 on helposti suoritettavissa. 0:38:07.280,0:38:10.800 Me toteutimme hyökkäykset. 0:38:10.800,0:38:13.760 Selittämäni hyökkäykset ovat juuri nämä kaksi. 0:38:14.180,0:38:16.640 Tarvitset salauskyselyjä. 0:38:16.640,0:38:20.140 Eli voit pyytää Alicea salaamaan viestejä. 0:38:20.140,0:38:22.460 Mutta sinun ei tarvitse pyytää purkamaan mitään. 0:38:23.220,0:38:27.040 Jos saisit pyytää myös purkua, hyökkäyksestä tulisi paljon tehokkaampi. 0:38:27.040,0:38:30.300 Silloin hyökkäyksen aikavaativuus eli vaadittavien operaatioiden määrä olisi vain 2^10 eli 1024. 0:38:30.300,0:38:33.900 Se olisi hyvin yksinkertainen, mutta vaatisi enemmän kyselyjä, myös purkukyselyjä. 0:38:34.020,0:38:44.140 Aikavaativuus tarkoittaa sitä, kuinka monta salausta tai purkua joudut itse suorittamaan. 2^10 on vain 1024. 0:38:44.140,0:38:50.300 Se on hyvin kevyt hyökkäys, mutta vaatii myös enemmän kyselyjä ja purkukyselyjä. 0:38:50.300,0:38:53.800 Se ei ole kovin realistinen hyökkäystilanne. 0:38:53.952,0:39:03.452 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. 0:39:03.792,0:39:06.932 Tämän voi oikeasti muuttaa käytännön hyökkäykseksi. 0:39:06.932,0:39:13.372 Tässä asetelmassa ei ole enää kyse teoriasta vaan ALE-protokollasta, eli automaattisesta linkinmuodostuksesta. 0:39:13.652,0:39:16.752 Tarvitaan jälleen 2^48, eli juuri tämä hyökkäys. 0:39:17.252,0:39:24.064 Lisäksi kahdeksan teoreettista kyselyä. Jos vain voimme pyytää Alicea salaamaan viestejä meille, se vastaa 0:39:24.064,0:39:27.345 kahden tunnin salakuuntelua Alicen ja Benjaminin välillä. 0:39:27.345,0:39:30.426 Seuraavaksi selitän, miten tämä toimii. 0:39:30.426,0:39:34.647 Mutta huomautetaan, että näiden kahden tunnin aikana pitää tietää myös selkotekstit. 0:39:34.647,0:39:41.439 Eli ei riitä, että sieppaat radioliikenteen — sinun täytyy salakuunnella tarkasti tiettyä asemaa. 0:39:41.439,0:39:46.210 Sinun täytyy tietää, mikä on viestinnän selkoteksti. 0:39:47.550,0:39:49.951 Tarkastellaan nyt hyökkäystä käytännössä. 0:39:49.971,0:39:53.692 Ensin täytyy ymmärtää, että ALE:ssa 0:39:53.692,0:39:57.424 kommunikoimassa ei ole vain kaksi osapuolta vaan koko verkko. 0:39:57.424,0:40:00.296 Kaikki verkon jäsenet jakavat saman symmetrisen avaimen. 0:40:00.296,0:40:03.998 Eli joukko käyttäjiä ja heillä on kaikilla sama avain. 0:40:04.338,0:40:10.982 Tavallisesti osapuolet ovat Alice ja Benjamin tai Bob. 0:40:11.062,0:40:17.506 Mutta tässä tapauksessa käytetään kutsutunnuksia, niin sanottuja call sign -koodeja. 0:40:17.506,0:40:19.487 Esimerkiksi Alice voi olla AAA. 0:40:19.487,0:40:20.427 Eli käytössä on kutsutunnukset. 0:40:20.427,0:40:22.168 Niitä voi verrata vaikka 0:40:22.370,0:40:29.103 lyhyisiin puhelinnumeroihin. Ne koostuvat kolmesta kirjaimesta, esimerkiksi AAA. 0:40:29.363,0:40:39.227 Zoomataan nyt kolmisuuntaisen kädenpuristuksen ensimmäiseen viestiin, jonka Alice lähettää Benjaminille. 0:40:39.447,0:40:51.392 Meillä on Alice ja Benjamin, mutta nyt Alice on AAA ja Benjamin AQ. Ensimmäinen viesti, jonka AAA lähettää AQ:lle 0:40:51.392,0:41:07.812 ilmoittaa, että viesti on osoitettu AQ:lle. Se toistetaan ja lopussa sanotaan, että tämä on A. Kutsutunnukset ovat siis kolmikirjaimisia. 0:41:07.812,0:41:20.632 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. 0:41:20.712,0:41:31.320 Muistat ehkä, että tweak T on 64-bittinen ja siihen koodataan aika, sanalaskuri ja käytetty taajuus. 0:41:31.321,0:41:39.147 Oletetaan, että käytetty taajuus pysyy samana ja aika on ajanhetki. Sanalaskuri kasvaa jokaiselle sanalle. 0:41:39.147,0:41:41.909 Ensimmäisessä sanassa laskuri on 1. 0:41:41.909,0:41:46.253 Toisessa 24-bittisessä sanassa laskuri on 2 ja luonnollisesti binaarimuodossa. 0:41:46.253,0:41:50.456 Kolmannessa sanassa laskuri on 3 eli binäärinä 11. 0:41:51.710,0:42:03.376 Oletetaan, että aikaa kuluu ja myöhemmin AAQ eli Benjamin lähettää saman viestin, koska hän haluaa muodostaa linkin AAA:n kanssa. 0:42:03.376,0:42:08.409 Tällöin viestit peilautuvat — 2AA, 2AA ja lähettäjänä AAQ. 0:42:08.409,0:42:11.831 Nyt kiinnostavaa on, mitä dataa on ennen tätä kohtaa. 0:42:12.271,0:42:17.204 Näemme, että selkoteksti on täysin sama. 0:42:17.204,0:42:21.084 Paitsi viimeinen tavu eroaa. 0:42:21.084,0:42:32.050 Ja tweakissä ero ilmenee kolmannessa tavussa. Siinä on neljä bittiä minuuteista ja neljä bittiä sekunneista. 0:42:32.050,0:42:42.796 Jos ero kutsutunnuksissa vastaa ajan eroa, saadaan sopiva pari, jossa on ero selkotekstissä ja tweakissa. 0:42:42.796,0:42:50.270 Silloin voimme suorittaa hyökkäyksemme. 0:42:50.824,0:42:56.366 Kerrataan, mitä viestityyppejä hyökkäys edellyttää. 0:42:56.366,0:43:04.028 Taajuuksien pitää olla samat — oletetaan ALE-verkon taajuuden pysyvän vakiona. 0:43:04.308,0:43:11.330 Sanalaskurien pitää olla samat, mutta tämä on helppoa koska molemmat aloittavat sanasta 1. 0:43:11.330,0:43:16.471 Kun vertaat kahta sanaa, laskuri on aina sama. 0:43:16.732,0:43:17.992 Lisäksi tarvitsemme sen, että 0:43:17.992,0:43:20.103 viestit lähetetään saman 60 minuutin aikaikkunan sisällä. 0:43:20.103,0:43:32.030 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ä. 0:43:32.030,0:43:42.405 Oletetaan, että nämä arvot jakautuvat satunnaisesti, jolloin tämä osuu kohdalleen sattumalta. 0:43:42.405,0:43:47.060 Lisäksi tarvitsemme, että ero 0:43:47.060,0:43:53.383 ajan jäljellä olevissa 8 bitissä vastaa kutsutunnuksen erotusta. 0:43:54.143,0:43:59.725 Tämäkin tapahtuu lopulta sattumalta, jos verkko on riittävän suuri. 0:43:59.726,0:44:09.390 Näiden ehtojen ja lisäoletusten, kuten viestien määrän ALE-verkossa, perusteella voidaan laskea, että tarvitaan noin kaksi tuntia tiedonkeruuta. 0:44:09.390,0:44:10.470 tiedot. 0:44:10.871,0:44:12.251 Ja siinä se oikeastaan on. 0:44:12.251,0:44:14.272 Mutta ennen kuin mennään... 0:44:14.272,0:44:15.123 öö... 0:44:15.123,0:44:27.743 vastaan ensin muutamaan ilmeiseen kysymykseen. Ilmoitimmeko tästä Natolle? Kyllä ilmoitimme, mutta emme koskaan saaneet vastausta. Lähetimme heille paperin ennen julkaisua. 0:44:27.743,0:44:38.012 He eivät kuitenkaan koskaan palanneet asiaan, mikä tarkoittaa, että moni ilmeinen kysymys jäi vaille vastausta. Emme siis tiedä kaikkea. 0:44:38.012,0:44:43.658 Esimerkiksi emme tiedä, aikooko NATO korvata Half Loopin jollain toisella algoritmilla. Haluaisin tietää. 0:44:43.658,0:44:45.208 Valitettavasti emme tiedä. 0:44:46.009,0:44:50.020 Toinen ilmeinen kysymys on: miksi ei vain käytetä AES:ää? 0:44:50.020,0:44:53.221 AES on hyvin tutkittu salausalgoritmi. 0:44:53.221,0:44:54.381 Miksi ei siis AES? 0:44:54.381,0:45:00.022 Miksi kehitettiin uusi Half Loop -salaus, joka muistuttaa lähinnä AES:n supistettua versiota? 0:45:00.022,0:45:02.188 Taas kerran, hyvä kysymys. 0:45:02.188,0:45:05.534 En tiedä selkeää vastausta. 0:45:05.574,0:45:08.565 Sanotaan, että AES-lohkot ovat liian suuria. 0:45:08.565,0:45:11.412 Korkeataajuisessa radiossa kaistanleveys on rajallinen 0:45:11.412,0:45:22.992 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. 0:45:22.992,0:45:35.503 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. 0:45:35.503,0:45:38.442 jos katsot tätä tallenteena myöhemmin, voit myös ottaa yhteyttä. 0:45:38.442,0:45:43.157 Jos katselet tallennetta tai jotain muuta, ole rohkeasti yhteydessä. 0:45:43.157,0:45:45.609 Keskustelen mielelläni. Kiitos, se oli siinä. 0:45:45.609,0:45:46.470 Kiitos. 0:45:57.258,0:45:58.509 Kiitos, Lukas. 0:45:59.050,0:46:03.373 Jos haluat esittää kysymyksen ja olet paikan päällä, mene mikrofonin luo. 0:46:03.373,0:46:07.297 Jos olet verkossa, laita kysymys IRC:n tallennekanavaan. 0:46:07.297,0:46:11.880 Ensimmäinen kysymys tulee netistä, Signal Angelin kautta. 0:46:14.922,0:46:18.475 Hei ja kiitos todella mielenkiintoisesta esityksestä. 0:46:18.495,0:46:20.917 Meillä on kysymys internetin kautta. 0:46:21.257,0:46:28.143 Näytätte onnistuneen käyttämään tunnettuja menetelmiä nykyistä sotilassalausta vastaan. 0:46:28.143,0:46:33.207 Tiedättekö, käyttääkö armeija vertaisarviointia vahvistaakseen algoritmejaan? 0:46:33.208,0:46:38.962 Huomasin myös, että yksi kirjoittajista vaikutti olevan sotilasyliopistosta. 0:46:39.348,0:46:46.200 Voisitteko sanoa, että siviili- ja sotilastutkijat tekevät nyt enemmän yhteistyötä kuin 20 vuotta sitten? 0:46:48.552,0:46:50.883 Tämä oli varmaan useampi kysymys. 0:46:50.883,0:47:03.446 Ensimmäinen taisi olla, onko vertaisarviointia käytössä. No, riippuu miten vertaisarviointi määritellään, mutta akateemisessa maailmassa se on itsestään selvää. 0:47:03.446,0:47:04.517 Juuri näin toimitaan. 0:47:04.517,0:47:11.639 Jos haluat suunnitella uuden salauksen, lähetät sen konferenssiin tai lehteen ja saat palautetta muilta tutkijoilta. 0:47:11.639,0:47:14.799 Mutta tässä tapauksessa en usko, että mitään vertaisarviointia on ollut. 0:47:14.799,0:47:17.000 Tämä standardi vain on olemassa. 0:47:17.135,0:47:18.545 En tiedä, onko sisäistä arviointia tehty. 0:47:18.845,0:47:21.806 Toivon, että olisi, mutta jos olisi, toivon että he olisivat huomanneet heikkouden. 0:47:21.806,0:47:23.126 Toivottavasti. 0:47:23.126,0:47:27.328 Mutta toisaalta, olisi myös toivonut, että he olisivat löytäneet haavoittuvuuden itse. 0:47:27.328,0:47:28.248 Selvä. 0:47:28.508,0:47:31.789 Sitten unohdinkin jo seuraavan kysymyksen. 0:47:31.789,0:47:37.070 Olisiko ollut kyse yhteistyöstä sotilas- ja siviilisektorin välillä? 0:47:38.190,0:47:44.051 Kyllä, kysymys oli, onko yhteistyö sotilaan ja siviilin välillä lisääntynyt? 0:47:45.532,0:47:46.392 No siis... 0:47:47.184,0:47:52.976 En oikeastaan osaa sanoa. Kuten sanoin, me ilmoitimme heille, mutta emme saaneet vastausta. 0:47:52.976,0:47:59.467 Ehkä se tarkoittaa enemmän ei kuin kyllä, mutta en voi sanoa mitä muualla tapahtuu. 0:48:00.488,0:48:07.610 Kuten aiemmin sanoin, viimeinen kysymys olikin miksei käytetä suoraan AES:ää. 0:48:08.050,0:48:16.060 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ä. 0:48:16.060,0:48:20.076 Sen pitäisi olla niin turvallinen, että myös sotilaskäyttö onnistuu huoletta. 0:48:21.596,0:48:21.976 Kiitos. 0:48:21.976,0:48:24.798 Mikrofoni täällä edessä. 0:48:24.798,0:48:28.400 Hei, kiitos esityksestä. 0:48:28.560,0:48:34.063 Halusin kysyä, onko todellisessa hyökkäyksessä tweak tiedossa vai ei? 0:48:34.063,0:48:38.646 Kyllä, ehkä voin palata tähän kalvoon. 0:48:38.646,0:48:39.957 Tässä näkyy tweak, kyllä? 0:48:39.957,0:48:44.489 T on tweak, ja se koostuu pääasiassa aikaleimasta. 0:48:44.489,0:48:46.050 Ja totta kai aika on tiedossa. 0:48:46.050,0:48:48.154 Voit katsoa kellosta. 0:48:48.154,0:48:49.104 Tiedät kellonajan. 0:48:49.104,0:48:53.114 Sanalaskuri alkaa ykkösestä ja kasvaa siitä ylöspäin. 0:48:53.114,0:48:57.784 Käytetty taajuuskin on tiedossa, koska sitä kuunnellaan radiosignaalina. 0:48:59.868,0:49:00.198 Kiitos. 0:49:00.198,0:49:02.389 Täällä seuraava. 0:49:03.129,0:49:06.210 Ensinnäkin, kiitos erittäin kiinnostavasta esityksestä. 0:49:06.311,0:49:12.293 Mainitsit, että tarvitaan noin 120 minuuttia dataa. 0:49:12.873,0:49:17.245 Ymmärtääkseni Half Loopia käytetään vain kädenpuristuksen salaamiseen. 0:49:17.245,0:49:22.377 Kuinka todennäköistä on, että oikeasti saadaan kasaan kaksi tuntia kädenpuristuksia? 0:49:22.377,0:49:29.260 Niin, kaksi tuntia on oletus. Oletetaan, että viesti lähetetään aina 0:49:29.276,0:49:30.706 unohdin tarkalleen, ehkä kymmenen sekunnin välein. 0:49:30.706,0:49:33.257 Sitten voidaan keskustella, kuinka monta viestiä oikeasti lähetetään. 0:49:33.257,0:49:37.198 Mutta tuo kymmenen sekuntia per viesti on yksi arvio. 0:49:38.999,0:49:41.069 Riippuu toki siitä, kuinka paljon liikennettä on. 0:49:41.069,0:49:44.260 Mutta nuo kaksi tuntia eivät tarkoita kahden tunnin viestimäärää. 0:49:44.260,0:49:51.242 Se tarkoittaa vain sitä, että joudut odottamaan kaksi tuntia, jotta tarvittavat viestit sattuvat kohdalleen. 0:49:51.242,0:49:52.333 Eli... 0:49:52.333,0:49:55.830 Sanot siis, että nämä viestit löytyvät kahden tunnin kuluessa? 0:49:55.830,0:49:56.584 Kahdessa tunnissa, kyllä. 0:49:56.584,0:49:57.844 Selvä, kiitos. 0:50:00.153,0:50:00.603 Kiitos. 0:50:00.603,0:50:02.653 Meillä on vielä yksi kysymys tuolla. 0:50:03.074,0:50:11.617 Tiedän, että AES:ää vastaan on hyökkäyksiä, jos sinulla on käytössä siihen liittyviä avaimia. 0:50:11.617,0:50:16.409 Joten kysyisin ensin, liittyykö tämä hyökkäys sellaiseen tapaukseen? 0:50:16.409,0:50:24.321 Tämä on itse asiassa hyvin samankaltainen. Kun hyökkääjällä on käytössään liittyviä tweakeja, se vastaa liittyviä avaimia. 0:50:24.362,0:50:28.883 Ja nyt, mitä tapahtuu... vaihdetaanpa kalvo nopeasti... 0:50:29.317,0:50:35.211 Tässä kalvossa, tai hetkinen, väärä kalvo. 0:50:35.452,0:50:38.855 Tässä siis lisätään tweak osaksi avainta. 0:50:38.855,0:50:41.717 Ja tämä on itse asiassa todella huono idea. 0:50:42.017,0:50:47.352 Ensimmäisessä tweakable block cipher -julkaisussa sanotaan selvästi: älä tee näin. 0:50:47.352,0:50:53.296 Jos teet näin, saat turvallisuutta vain suunnilleen puolet bittimäärästä. 0:50:53.296,0:50:59.051 Tämä johtaa geneeriseen hyökkäykseen, joka toimii, koska tweak on lisätty avaimen osaksi. 0:50:59.523,0:51:09.150 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ä. 0:51:09.150,0:51:09.680 Näitä on dokumentoitu. 0:51:09.680,0:51:15.995 Luultavasti vain suuremmissa AES-versioissa, mutta kyllä, liittyvät tweakit ovat mahdollisia ja hyökkäykset muistuttavat niitä. 0:51:15.995,0:51:18.257 Jos saan, vielä yksi pieni lisäkysymys. 0:51:18.257,0:51:18.447 Kyllä. 0:51:18.447,0:51:21.379 Miksi he suunnittelivat salauksen tällä tavalla? 0:51:21.379,0:51:26.132 Ymmärtääkseni tämä oli jo tiedossa, kun Half Loop otettiin käyttöön. 0:51:26.132,0:51:27.075 Niin, sitäkin. 0:51:27.075,0:51:30.156 Se on yksi niistä kysymyksistä, joihin haluaisin vastauksen, mutta minulla ei ole sitä. 0:51:30.156,0:51:32.877 Ehkä he eivät vain tienneet siitä. 0:51:32.877,0:51:37.289 Tweakin lisääminen avaimeen on helppo tehdä, jos ei tiedä että se on huono idea. 0:51:37.289,0:51:40.450 Jos ei tiedä, että se ei ole hyvä ratkaisu. 0:51:40.450,0:51:45.321 Se saattaa näyttää hyvältä idealta ensisilmäyksellä, mutta ei se ole. 0:51:46.662,0:51:48.022 Täällä oli jatkokysymys. 0:51:48.022,0:51:49.082 Kiitos. 0:51:49.103,0:51:49.423 Eli... 0:51:49.423,0:51:50.483 öö... 0:51:50.819,0:52:00.247 Vaikka sanoit ettet käsittelisi 48- ja 96-versioita, niin mikä olisi arviosi siitä, kuinka paljon työtä tarvitaan niiden murtamiseen? 0:52:00.247,0:52:10.265 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. 0:52:10.265,0:52:13.016 Se tarkoittaa, että hyökkäys toimii myös niissä. 0:52:13.217,0:52:20.943 Kryptografian näkökulmasta tämä tarkoittaa jo, että akateemisesti algoritmi katsotaan murretuksi. 0:52:20.987,0:52:31.307 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. 0:52:33.387,0:52:41.507 Toisessa paperissamme käsittelemme näitä suurempia versioita ja joitain niin sanottuja "middle meet" -hyökkäyksiä. 0:52:42.047,0:52:43.607 Mutta nekään eivät ole käytännöllisiä. 0:52:43.827,0:52:47.699 Vaikea sanoa, kuinka paljon työtä tarvittaisiin. 0:52:47.855,0:52:56.127 Mutta yleisesti sanoisin: älä luota niihin, vaikka niitä ei ole vielä murrettu yhtä pahasti kuin Halfloop24, mutta parempi olla käyttämättä. 0:52:56.689,0:52:57.160 Kiitos. 0:52:57.160,0:52:58.090 Kiitos. 0:52:58.192,0:52:59.594 Seuraava kysymys verkosta. 0:52:59.594,0:53:00.835 Signal Angelilta. 0:53:02.373,0:53:03.283 Kiitos. 0:53:03.604,0:53:17.213 Seuraava kysymys on: mitä tapahtuu, jos salaus tapahtuu ajassa 11.03.03.998 ja purkuajassa 11.03.04.001? 0:53:17.213,0:53:21.977 Eli sekunnit ovat eri. 0:53:21.977,0:53:28.141 Rehellisesti sanottuna, en tiedä, koska en tunne radioviestintää kovin hyvin. 0:53:28.141,0:53:30.433 Mutta pahimmassa tapauksessa kokeillaan molemmat. 0:53:30.433,0:53:31.243 Tarkoitan... 0:53:31.355,0:53:36.215 Halfloopin purku on todella nopeaa, ja koska selväteksti on hyvin rakenteellista... 0:53:36.215,0:53:50.515 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. 0:53:50.515,0:53:58.515 Mutta kannattaa olla varovainen. Jos tekee sen vain kerran tai kahdesti, ei se haittaa. 0:53:58.515,0:54:01.125 Mutta jos alat purkaa tuhansia viestejä eri tweak-arvoilla, se ei ole hyvä idea. 0:54:01.125,0:54:07.719 Silloin hyökkääjäkin saa tietoa ilmaiseksi, mikä ei ole hyvä juttu. 0:54:07.719,0:54:14.344 Hän saa ilmaiseksi jotain hyödyllistä. 0:54:15.044,0:54:16.615 Kiitos. 0:54:16.615,0:54:17.726 Täällä seuraava kysymys. 0:54:18.107,0:54:22.629 Voiko tämän algoritmin korjata, vai pitäisikö vain käyttää AES:ää? 0:54:23.450,0:54:27.403 Se riippuu siitä, miten "korjattava" määritellään. 0:54:27.403,0:54:30.925 Yksi ratkaisu olisi lisätä huomattavasti enemmän kierroksia. 0:54:30.925,0:54:41.800 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. 0:54:41.800,0:54:50.213 Tweakable block cipherien kohdalla kirjallisuudessa tiedetään, miten tämä tulisi tehdä. Esimerkiksi TRC-ky -viitekehys voisi auttaa. 0:54:50.213,0:54:59.757 Mutta onko sen korjaaminen vaivan arvoista? En tiedä. Yleisesti ottaen Halfloopin suunnittelu... 0:54:59.931,0:55:02.631 AES:n S-boksin käyttö on hyvä juttu. 0:55:03.011,0:55:07.811 Siirrot ovat vähän omituisia, ne voisi siirtää mix column -operaatioon. 0:55:07.811,0:55:10.551 Mutta yleisesti komponentit ovat vahvoja. 0:55:10.551,0:55:13.731 Eli meillä on vahva lineaarinen kerros ja vahva S-boksi. 0:55:13.851,0:55:14.911 Mutta yksityiskohdilla on väliä. 0:55:14.911,0:55:18.991 Jos todella haluat, sen voisi korjata. 0:55:18.991,0:55:22.351 Mutta en usko, että siinä olisi hirveästi järkeä. 0:55:22.691,0:55:23.171 Kiitos. 0:55:23.171,0:55:26.411 Takarivissä on joku mikrofonilla. 0:55:26.885,0:55:33.960 On olemassa hyökkäyksiä, jotka kohdistuvat lohkon kokoon eikä avaimen kokoon, kuten esimerkiksi Sweet32 triple DES:llä. 0:55:33.960,0:55:36.432 Tässä algoritmissa on pieni lohkokoko. 0:55:36.432,0:55:38.373 Luuletko, että se on haavoittuva tällaisille hyökkäyksille? 0:55:38.373,0:55:39.544 Kyllä, juuri niin. 0:55:39.544,0:55:44.107 Pienien lohkokokojen kanssa täytyy olla erittäin varovainen. 0:55:44.107,0:55:52.893 Selvätekstissä ei ehkä ole tarpeeksi materiaalia, mutta täällä on tweak, eli... 0:55:52.893,0:55:53.884 Siinä on kuitenkin jotain vaihtelua. 0:55:53.884,0:55:55.435 Eli jos teet sen oikein... 0:55:55.481,0:55:57.552 Saat vaihtelua, mutta silti täytyy olla tarkkana. 0:55:57.552,0:56:04.236 Mainitsit aiemmin differentiaalikryptanalyysin ja tällöin tutkitaan miten erot leviävät, myös ei-deterministisissä tilanteissa. 0:56:04.296,0:56:12.901 Yleensä ei voida sanoa kovin paljoa, mutta 24 bitin tapauksessa voidaan todennäköisesti laskea koko DDT-taulukko. 0:56:12.901,0:56:20.585 Se on siis ero-jakaumataulukko, mikä on hieman kiusallista, koska yleensä symmetrisessä kryptossa sitä ei voida tehdä koko salaukselle. 0:56:20.585,0:56:23.546 Mutta tässä se saattaa olla mahdollista. 0:56:25.293,0:56:33.507 Jos siis todella haluat tarkastella turvallisuutta tai korjata salauksen, se ei ole mitätöntä. 0:56:33.507,0:56:40.911 Tarvitaan kunnon analyysiä, jotta nähdään pysyykö se turvallisena vai ei. 0:56:40.911,0:56:45.693 Kiitos. 0:56:46.194,0:56:46.684 Oikean puolen mikrofoni. 0:56:46.684,0:56:48.695 Kyllä, mene vaan. 0:56:50.373,0:56:52.045 Tiedetäänkö mitään algoritmin suunnittelijoista? 0:56:52.123,0:56:55.294 Voiko se olla NSA:n lahjoittama? 0:56:55.294,0:56:57.057 Öö... 0:56:59.995,0:57:05.557 Ja käsittääkseni, vaikka minulla ei ole lähteitä, tämä tuli enemmän... 0:57:05.557,0:57:10.248 Korkeataajuusradioyhteisöltä tämä suunnittelu. 0:57:10.248,0:57:11.058 Eli... 0:57:12.019,0:57:13.359 Sanotaan näin... 0:57:13.419,0:57:14.099 Tarkoitan... 0:57:14.099,0:57:15.860 Se ei ollut edes vitsi. 0:57:15.860,0:57:17.990 Tiedän, että lahjoituksia on tehty paljon... 0:57:17.990,0:57:18.891 Kyllä, kyllä, tiedän. 0:57:18.891,0:57:21.021 Mutta halusin sanoa, että... 0:57:21.021,0:57:22.362 On olemassa Schneierin laki. 0:57:22.362,0:57:25.302 Jokainen voi suunnitella salauksen, joka ei ole turvallinen. 0:57:25.663,0:57:27.893 Ei turvallinen, mutta jonka suunnittelija itse luulee olevan. 0:57:28.411,0:57:39.441 En siis syyttäisi suunnittelijoita, vaan niitä jotka standardisoivat tämän ilman kunnollista analyysiä. Heitä minä syyttäisin. 0:57:40.483,0:57:42.635 Selvä. Takarivin mikrofoni taas. 0:57:42.635,0:57:45.547 Hei, kiitos hyvästä esityksestä. 0:57:45.547,0:57:49.651 Onko sinulla käsitystä miksi he yhä käyttävät ECB:tä eivätkä jotain muuta tilaa? 0:57:50.631,0:57:51.973 Ehkä. 0:57:52.611,0:57:53.975 Missä se nyt olikaan... 0:57:54.211,0:57:58.694 ECB:n käyttö on itse asiassa ok, koska kyseessä on tweakable block cipher. 0:57:58.694,0:58:02.316 Ja koska tweak muuttuu jokaisella... 0:58:02.716,0:58:09.600 Koska tweak sisältää sanalaskurin ja aikaleiman, ECB:n käyttö on ihan hyväksyttävää. 0:58:09.600,0:58:11.902 Se ei siis ole haavoittuvuus. 0:58:11.902,0:58:14.563 Se tekee siitä jopa aika yksinkertaisen. 0:58:16.933,0:58:18.853 Selvä, täällä eturivissä. 0:58:21.137,0:58:27.039 Onko sinulla proof of concept tästä hyökkäyksestä, vai onko se juridisesti ongelmallista? 0:58:27.039,0:58:28.659 Meillä on toteutus. 0:58:28.899,0:58:33.120 Julkaisussa on linkki GitHubiin, ja siellä on toteutus. 0:58:33.120,0:58:34.660 Me teimme sen. 0:58:34.741,0:58:39.462 Emme tietenkään salakuunnelleet HF-radiota, vaan teimme tämän laboratoriossa. 0:58:39.462,0:58:43.563 Generoimme selvätekstit itse ja sitten ajoimme hyökkäyksen. 0:58:43.563,0:58:45.443 Hyökkäyksessä on käytännössä kaksi vaihetta. 0:58:45.443,0:58:47.604 Ensimmäinen on oikeastaan juuri se, mitä näytin. 0:58:47.604,0:58:49.284 Eli selvitetään... 0:58:49.324,0:59:00.569 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. 0:59:00.569,0:59:08.923 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ä. 0:59:08.923,0:59:14.736 Tämän voi ajaa GPU:lla ja se vie ehkä kahdeksan tuntia lisää ja sitten se on siinä. 0:59:17.164,0:59:19.004 Selvä, tarkistetaan vielä. 0:59:19.004,0:59:20.388 Ei enää kysymyksiä salissa. 0:59:20.388,0:59:24.452 Joten suuret kiitokset loistavasta esityksestä Lukas Stennisille.