Orice protocol criptografic trebuie să aibă:
- Un algoritm (public) care explică ce trebuie făcut. (În funcție de algoritmii secreti, s-ar numi „securitate prin obscuritate” și, de obicei, poate fi aruncat ca fiind inerent nesigur.)
- Unele informații secrete (adică una sau mai multe chei).
Pentru a fi de folos practic, spațiul cheie trebuie să fie suficient de mare pentru a face ca atacurile cu forță brută (mai ales atunci când se cunoaște algoritmul complet) să fie imposibile.
Este important să rețineți că atunci când vă gândiți la un criptosistem ca acesta, problema „pierderii secretului” este în afara domeniului de aplicare. Adică secretul ar trebui să fie într-adevăr secret, poți și trebuie să presupui că atacatorul o face nu cunoaște secretul înainte de a-și începe atacul.
Cel mai sigur și, în același timp, banal algoritm ar fi utilizarea unui bloc unic; adică secretul este un număr întreg (posibil foarte mare); iar algoritmul este pur și simplu să XOR secretul și textul simplu pentru criptare și să XOR secretul și textul cifrat pentru decriptare.
Acest lucru ar putea fi folosit astfel cu obiectele cerești:
- Cheia este ID-ul unei stele.
- Algoritmul:
- Există un flux constant de text cifrat care este transmis tot timpul, în blocuri de dimensiuni fixe. Să presupunem că acest transfer funcționează destul de bine, adică fără pauze semnificative și o latență aproximativ cunoscută.
- Atât emițătorul, cât și receptorul monitorizează în mod constant steaua și scot din ea biți aleatoriu într-o anumită formă sau mod. Nu știu dacă există măsurători practice care chiar funcționează astăzi, dar s-ar putea imagina că luminozitatea anumitor stele „pâlpâie” suficient pentru a extrage ceva din ea.
- Expeditorul continuă să trimită XOR următorul bloc de text simplu, sumă de verificare și completat la lungimea necesară, cu lotul curent de biți aleatori în timp real (adică, bloc unic) și îl trimite.
- Receptorul decodifică acest lucru folosind aceeași operație XOR. Pentru a fi puțin mai sigur împotriva problemelor de sincronizare, poate păstra ultimele N tampoane unice și să încerce doar să decodeze cu toate; cu suma de control și având în vedere cât de rapid este XOR, este fezabil să existe o fereastră glisantă de tampoane pentru a găsi cel corect.
Puterea algoritmului depinde de faptul dacă există suficiente stele posibile din care să aleagă și de faptul că măsurarea este suficient de dificilă, astfel încât să fie imposibil ca un atacator să scaneze foarte multe stele la un moment dat.
Acolo aveți o idee de bază despre cum ați putea folosi obiectele cerești în criptografie. La sfârșitul zilei, se rezumă la a genera biți cu adevărat aleatori și nici măcar nu ai nevoie de timp dacă poți avea o conexiune constantă. Puteți rafina acest lucru după cum este necesar; adică ați putea evita să trimiteți în mod constant text cifrat dacă aveți un fel de sursă de timp partajată (și trebuie doar să fie aproximativ sincronizată, în funcție de cât spațiu de tampon veți dori să utilizați pentru biții). Există o mulțime de probleme practice de rezolvat (de exemplu, cum se generează biții reproductibili în primul rând, evitând schimbarea de fază din cauza divergențelor minuscule și astfel), dar nu de nerezolvat în principiu.