Kuinka salata 64-bittiset arvot symmetrisesti?

Olen utelias algoritmiin, joka olisi hyvä seuraavaan skenaarioon:

  1. 32-bittinen ”teksti” tulo, otettu laskurilta
  2. 32- tai 64-bittinen ”salakirjoitettu” lähtö
  3. Lähdön pitäisi olla mahdollista purkaa avaimella (ja mahdollisesti muutamalla muulla piilotetulla parametrilla, kuten offset- ja nykyinen laskuri) ja palauttaa alkuperäisen 32-bittisen laskurin arvon
  4. Käyttäjä ei koskaan tarkkaile tuloa, mutta saattaa vastaanottaa minkä tahansa määrän lähtöjä, mahdollisesti peräkkäisiä. Silti heidän ei pitäisi pystyä tiedä mitä indeksejä heillä on.
  5. Muita voimassa olevia laskuriarvoja vastaavia ulostuloja pitäisi olla vaikea arvata.

Harjoittelemattomat käsitykseni on, että koska avain ja lähdöt ovat Tulotilaa suurempien tulosten pitäisi olla melko helppoja saada ”hyvät” tulokset ainakin muutamille ensimmäisille tuotoksille. Vaikuttaa kuitenkin myös loogiselta, että riittävällä näytteellä avain ja indeksit voidaan laskea helposti, mutta odotan useimpien tapausten käyttää l ess kuin 100 arvoa.

Kysymykseni ovat:

  1. Onko olemassa olemassa olevia algoritmeja, jotka toimivat tässä tilanteessa?
  2. Kuinka vaikeaa olisi olla crack? Toisin sanoen, laske arvot, jotka purkavat kelvollisiksi indekseiksi.
  3. Kuinka paljon enemmän näytteitä omistaa vaikuttaa sen halkeamiseen?
  4. Mitä vikaa on naiivilla lähestymistavalla kuten:

    u64 output = input repeat 64x output = ((output ^ key) + key) rotate-left 37 

    Olettaen, että lisäys kiertää 64-bittisten kokonaislukurajojen ympärille. Vaikuttaa siltä, että se sekoittaisi satunnaisavaimen perusteellisesti yhteen tuloon, mutta sillä olisi enemmän kuin yksi ulostulo voisi nopeasti lisätä hyökkääjän hallussa olevia tietoja, vaikka en tiedä miten. On selvää, että se rikkoutuu, yritän vain oppia.

  5. Käytetäänkö avaimesta riippuvaa arvoa vasemmalle kiertämiseen, kuten (((key & 0xFFFE)+1) * 37) olla parempi? Kuinka paljon se auttaa ja miksi?
  6. Mitä lähestymistapoja, resursseja jne. Käyttäisit algoritmin analysoimiseksi ja paremman suunnittelemiseksi?

Kommentit

  • Tämä on hyvin XY-ongelma samalla tavalla kuin kuvaat sitä. CSPRNG (huomaa S) ei näytä olevan lainkaan hyvä ratkaisu tälle ratkaisulle '. Avainkokopyyntö on vähän outo, miksi ei ole mahdollista käyttää suurempia avainkokoja?
  • Oletan, että avaimen koko ei ole välttämätön. Toivoin, että 64-bittinen avain riittää 32-bittisen arvon salaamiseen.

Vastaa

  1. Onko olemassa olemassa olevia algoritmeja, jotka toimivat tässä tilanteessa?

Kyllä, oikeastaan , on olemassa useita 64-bittisiä lohkosalauksia. Tavallinen viisaus on, että niitä ei kannusteta yleiseen käyttöön, koska tavallisilla salaussalamoodeilla on taipumus alkaa vuotaa tietoa, kun olet lähellä syntymäpäivään sidottua (tässä tapauksessa noin 30 Gt). ole huolenaihe.

Tässä on joitain vaihtoehtoja:

  • 3DES (alias TDES); tätä käytetään DES kolme kertaa kolmella eri näppäimellä; tällä on etu tutkitaan erittäin hyvin.

  • Speck , jolla on parametrisarjoja 64-bittisillä salaussalakkeilla. Tällä on nopeimman vaihtoehdon etuna, ja sen ovat suunnitelleet ihmiset, jotka tietävät, että he tekevät ja ovat tehneet yllättävän paljon kryptanalyysiä.

  • FPE-salaus (kuten FF1, joka pystyy käsittelemään minkä tahansa mielivaltaisen lohkokoon (mukaan lukien 64 bittiä). Tällä on se etu, että ne mahdollistavat säätämisen (joka on kätevä paikka ”muiden piilotettujen parametrien” sijoittamiseen, jos päätät, että se on etu Se on hitaammin kuin vaihtoehdot; FF1: n kanssa turvallisuus tulee AES: n taustalla olevasta turvallisuudesta sekä Feistel-rakenteen todistettavasta turvallisuudesta.

Nyt nämä avaimet vievät yli 64 bittiä; yleinen viisaus on, että 64-bittinen avain ei ole vain tarpeeksi pitkä.

  1. Kuinka vaikeaa olisi murtaa? Toisin sanoen, laske arvot, jotka purkavat pätevät indeksit.

Minkä tahansa yllä olevan kohdalla vastustajan ainoa käytännön vaihtoehto olisi arvaa satunnaisesti salakirjoituksia ja toivoa kompastuvan sellaiseen, joka purkaa salauksen kelvolliseksi hakemistoksi.

  1. Kuinka paljon lisää näytteitä vaikuttaa sen halkeamisen tehokkuuteen?

Minkä tahansa yllä olevan kohdalla suurten näytemäärien tekeminen tekee hyökkäyksestä mahdotonta.

  1. Mikä vikaa naiivilla lähestymistavalla, kuten …

ARX-salakirjoja (oikeastaan mikä tahansa salaus, mutta varsinkin ARX) on hankala saada oikea. Erityisesti ARX-salakirjoilla ei yleensä ole haittaa hajottaa differentiaali- ja lineaarisia ominaisuuksia (mikä tarkoittaa tällaisia muotoilua on todella tutkittava hyvin sen varmistamiseksi).

  1. Mitä lähestymistapoja, resursseja jne. käyttäisit algoritmin analysoimiseksi ja paremman suunnittelemiseksi?

Ehdotan, että valitset suunnittelun, joka on jo analysoitu; luetelen kolme edellä.

Kommentit

  • I ' haluan mieluummin esim. Blowfishin 3DES: n sijaan, jos muuttuu suhteellisen pieni avaintulo. 3DES: n turvallisuus ole epävarma, vaikka avain laajennettaisiin 128 bittiin (tai tietysti pikemminkin 112 bittiin).
  • @MaartenBodewes: onko sinulla joku maininta siitä, että 3DES on tuntematon avain on erotettavissa satunnaisesta tasaisesta permutaatiosta?
  • Ei, tietysti ei. Minun ' ei siis edes tarvitse edes perustella, onko salauksessani ~ 80-bittinen tai ~ 112-bittinen vahvuus syötettäessä 128- tai 192-bittistä avainta (I ' en ole epäillyt, ettet pystyisi siihen, mutta hei, me iv id = ”a177a8e7a kaikki ”ponchot”. Ja avaimen koko näyttää olevan kysymys kysymyksessä. Pelkkä pariteettibittien heittäminen tällöin on turhaa.
  • Voisitteko kertoa tarkemmin lausekkeesta " Nyt nämä avaimet vievät yli 64 bittiä; yleinen viisaus on, että 64-bittinen avain ei ole vain tarpeeksi pitkä. "? Mitkä algoritmit vaativat minkä pituisia avaimia, ja 64-bittiset avaimet eivät ole riittävän pitkiä mihin, tarkalleen?
  • @shader: vain 64-bittiset avaimet ovat haavoittuvia suurten (hyvin rahoitettujen) vastustajien raakavoimahauille. Koska yleensä on tarpeeksi helppoa käyttää jonkin verran suurempia avaimia (esim. 128-bittisiä), jotka eivät ' ole kenenkään alttiita, valitsemme yleensä turvallisemman vaihtoehdon (vaikka ' ei ole heti huolissaan siitä, että NSA on kiinnostunut hyökkäämään meihin, tai jos Amazon päättää omistaa koko pilvensä meille …

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *