Kaip ir daugelis nervų, aš domiuosi kriptografija, pagrįsta karo metu Ur-Kompiuterių mokslininkas Alanas Turingas. Taigi aš su susidomėjimu sekiau IEEE spektras Pranešimas apie populiarėjančią kriptografijos postquantum sritį. Šie metodai yra sukurti taip, kad nuvilia net didžiulį kvantinio skaičiavimo potencialą-technologinius šviesmečių metus, išskyrus elektromechaninį bombą, kurį Turingas panaudojo vokiečių „Enigma“ šifrui sulaužyti. Esu tikras, kad tie nauji kriptografiniai metodai veiks puikiai. Tačiau yra viena šifravimo schema, žinoma net Turingo laikais, kuri yra matematiškai apsaugota nuo ne tik kvantinių kompiuterių, bet ir bet koks Kompiuteris, kuris kada nors bus išrastas: vienkartinis padas.
Vienkartinis trinkelė yra atsitiktinių raidžių ar skaičių serija-paprastai 250 skaitmenų. Siuntėjas ir imtuvas turi PAD kopiją, kuri naudojama šifravimui ir iššifravimui, laikantis keleto paprastų, bet griežtų rašiklio ir popieriaus taisyklių. Tai šifras, kuriame raktas keičiasi visiškai nenuspėjamu būdu po kiekvieno veikėjo. Be nuspėjamumo nėra nieko, kad puolamas kompiuteris galėtų patekti į dantis.
Tačiau net ir pats jaunesnysis kodinis breaktorius, turintis du pranešimus, užšifruotus tuo pačiu PAD, galėtų nuimti šifravimą ir perskaityti abu. Todėl labai svarbu sunaikinti kiekvieną padėklą, kai jį panaudojote. Ir bloga idėja laikyti trinkelę ant nykščio disko ar kažko panašaus, nes kompiuteriai ir saugojimo įrenginiai turi įprotį palikti duomenų likučius aplink, net ir po to, kai duomenys buvo oficialiai ištrinti.
Vienkartinis padas turi keletą kitų reikšmingų apribojimų. Skaitmenys turi būti Tikrai Atsitiktiniai-skaičiai, kuriuos sukuria pseudo-atsitiktiniai algoritmai, kuriuos paprastai naudoja kompiuteriai, jo nesumažins. Ir kadangi jūs galite naudoti duotą padėklą tik vieną kartą, jums reikia daugybės jų krūvos, jei norite išsiųsti daugiau nei vieną pranešimą. Be to, trinkelės turi būti fiziškai atspausdintos ir dalijamos rankomis – negalite jų siųsti per tinklą.
Atsitiktinio numerio generatorius naudoja 74HC serijos loginių lustų kolekciją (viršutinę dešinę), kad būtų galima suskaitmeninti elektrinį triukšmą ir pateikti jį kaip atsitiktinį baitą „Arduino UNO Minima“ (viršuje kairėje). Generatorius gali pagaminti maždaug vieną baitą kas 200 mikrosekundžių, o UNO paverčia tai vienu skaitmeniu ir sukuria 50 trinkelių seriją su 250 skaitmenų, kuriuos jis siunčia į spausdintuvą (apačią).Jamesas Provostas
Aš nusprendžiau sukurti mašiną, kuri palengvina šias problemas šiek tiek lengviau. Mano „PAD-O-Matic“ yra pastatytas aplink CSN-A2 šiluminio kvito spausdintuvą, kurį prieš kelerius metus nusipirkau užgaidą. Spausdintuvas yra prijungtas prie skaidriausio technologijos kamino, kurį galėjau rasti: kankinamą tranzistorių, keli loginiai lustai ir mikrovaldiklis su maždaug 200 mano kodo eilučių. Šis kodas nedaro nieko sudėtingesnio už padalijimą, nes jei aš sužinojau vieną dalyką apie kriptografiją, tai yra tai, kad jei tikrai nežinai, ką darote, bandymas būti protingi užsikimšimai yra nesėkmės receptas. „Pad-o-matic“ yra visiškai atskiras.
Šiluminio kvito spausdintuvas „Pad-O-Matic“ leidžia man atsispausdinti visą trinkelių seriją. Aš vis dar turiu fiziškai dalintis trinkelėmis, bet bent jau jie yra kompaktiškame ritinyje. Tada mano korespondentas ir aš galiu nuplėšti ir sunaikinti kiekvieną padėklą po to, kai jis buvo naudojamas.
Be nuspėjamumo nėra nieko, kad puolamas kompiuteris galėtų patekti į dantis.
Man vis dar reikėjo gero atsitiktinumo šaltinio – kai kurie iš esmės nenuspėjamų fizinių procesų, kad būtų galima paversti vienodai nenuspėjamais bitais. Laimei, ši problema man jau buvo išspręsta. Radau tvarkingą mažą akumuliatorių varomą grandinę Pasidaryti: Žurnalas, kuris remiasi elektriniu triukšmu, kurį sukelia elektronai, neteisingai verčiant tranzistoriaus pagrindą ir emiterio gnybtus, paliekant kolektoriaus terminalą nesusijusį. Pasidaryti:Generatorius yra supaprastinta „Aaron Logue“ grandinės versija, tačiau Pasidaryti: Laimei, turi originalios schemos kopiją. Tai naudoja 12 ir 5 voltus, o ne 18 ir 5 voltus Pasidaryti:„Seną maitinimo šaltinį“, kurį turėjau, taip pat suteikia pakankamai papildomos srovės šiluminiam spausdintuvui vairuoti. Originalioje grandinėje taip pat yra dvi gražios papildomos funkcijos, skirtos kelioms papildomoms traškučiams.
Pirmoji funkcija yra švari mikrovaldiklio sąsaja. Vienu metu jis siunčia vieną baitą lygiagrečiai, įspėdamas mikrovaldiklį kiekvieną kartą, kai yra naujas baitas. Reikia perspėjimo, nes laikas, reikalingas atsitiktiniam baitui generuoti DebiaSingnaudojant keturis flip-flops ir XOR vartus. DebiaSing reiškia, kad net jei elektrinis triukšmo generatorius linkęs, tarkime, daugiau nei 1s, galutinis išėjimas bus statistiškai subalansuotas.
„Pad-o-matic“ mėginiai reguliariai laiko elektrinį triukšmą, kad būtų sukurtas bitų srautas. Kad galutiniai skaičiai būtų šališki link tų, kuriems yra daugybė 0 ar 1, palyginamos bitų poros. Tik tuo atveju, jei jie skiriasi, jie bus nagrinėjami toliau, o pagrindinis skaitmuo buvo perduodamas. Aštuoni iš šių Debiased bitų yra supakuoti į baitą, kuriam taikoma modulinė padalijimas, kad būtų sudarytas atsitiktinis skaičius nuo 0 iki 9.Jamesas Provostas
Savo mikrovaldikliui pagaliau turėjau naudoti „Arduino UNO R4“ minimumą. Nors ši naujausia „Mylimojo UNO“ versija pasirodė maždaug prieš 18 mėnesių, aš neradau projekto, kuriam jo reikėjo – kol dabar. Didesnė jo atmintis-32 kilobaitai RAM, palyginti su 2 kb, „Rev3“-yra būtina, nes „Pad-o-matic“ turi sugeneruoti visą trinkelių seriją-50, mano atveju-ir laikyti jį atmintyje. Su 250 skaitmenų kiekviename trinkelėje, kuriam reikia daugiau nei 12 kb. Kadangi skaitmenys gyvena tik RAM, nėra jokios rizikos, kad jie nepaliktų jokių pėdsakų.
Mikrokontroleris sukuria skaitmenis iš gaunamų atsitiktinių baitų, pirmiausia išmesdamas bet kurį baitą, kurio vertė viršija 250. Tada jis atlieka modulinį padalijimą po 10 kiekviename likusiame baite, paliekant skaitmenis nuo 0 iki 9.
Aš pasirinkau 50 trinkelių vienai serijai, nors ir turėjau atmintį daugiau, nes iš tikrųjų turiu spausdinti vieną seriją, kad galėčiau laikyti, ir kopiją, kad galėčiau bendrinti, o tada generuoti ir spausdinti kitą seriją ir jos kopiją: Pirmoji serija skirta pranešimų siuntimo siuntimui pranešimų siuntimui Nuo manęs į savo slaptą korespondentą, o antroji serija yra skirta man siųsti man žinutes. Tai pašalina riziką netyčia naudoti tą patį PAD, kai pranešimai kerta vienas kitą. Iš viso 100 trinkelių naudoja vieną šiluminio popieriaus ritinį.
Aš viską sudėjau į medinį aptvarą ir Presto! Paspaudus mygtuką, „Pad-o-matic“ gurkšnys į gyvenimą, išspausdamas tobulą ir dabar šiek tiek patogesnį!-kriptografinę saugumą.
Iš jūsų svetainės straipsnių
Susiję straipsniai visame internete