Hogyan lehet a 64 bites értékeket szimmetrikusan titkosítani?

Kíváncsi vagyok egy olyan algoritmusra, amely jó lenne a következő szcenárióhoz:

  1. 32 bites “sima szöveg” bemenet, számlálóból vett
  2. 32 vagy 64 bites “ciphertext” kimenet
  3. Lehetővé kell tenni a kimenet visszafejtését a kulccsal (és esetleg néhány más rejtett paraméterrel, pl. egy offszet és egy aktuális számláló), és adja vissza az eredeti 32 bites számláló értéket
  4. A felhasználó soha nem figyeli a bemenetet, de akármennyi kimenetet is kaphat, esetleg szekvenciálisan. Ennek ellenére nem kellene tudni tudja, mely indexekkel rendelkezik.
  5. Nehéz lehet kitalálni más kimeneteket, amelyek megfelelnek az érvényes számlálóértékeknek.

Képzetlen megérzésem az, hogy mivel a kulcs és a kimenetek nagyobb, mint a bemeneti terület, meglehetősen könnyűnek kell lennie a “jó” eredmények elérésére, legalábbis az első néhány kimenet esetében. Ugyanakkor logikusnak tűnik az is, hogy elegendő minta mellett a kulcs és az indexek könnyen kiszámíthatók, de a legtöbb példára számítok használni l ess, mint 100 érték.

A kérdéseim a következők:

  1. Vannak-e olyan algoritmusok, amelyek működnek ebben a forgatókönyvben?
  2. Mennyire lenne nehéz rés? Vagyis, kiszámolja az értékeket, amelyek visszafejtik az érvényes indexeket.
  3. Mennyire befolyásolja a több minta birtoklása a feltörés hatékonyságát?
  4. Mi a baj a naiv megközelítéssel? például:

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

    Ha feltételezzük, hogy az összeadás körbeveszi a 64 bites egész határokat, úgy tűnik, mintha alaposan összekeverné a véletlenszerű kulcsot egyetlen bemenettel, de többel is rendelkezik A kimenet gyorsan növelheti a támadó birtokában lévő információkat, bár nem tudnám, hogyan. Nyilvánvaló, hogy törni fog, csak tanulni próbálok.

  5. Kulcsfüggő értéket használnék a bal oldali forgatáshoz, például (((key & 0xFFFE)+1) * 37) jobb? Mennyire segít és miért?
  6. Milyen megközelítéseket, erőforrásokat stb. Használna mind az algoritmus elemzéséhez, mind a jobb tervezéséhez?

Megjegyzések

  • Ez nagyon XY probléma, ahogy leírja. Egy CSPRNG (vegye figyelembe az S-t) egyáltalán nem tűnik jó megoldásnak erre. A kulcsméret kérése kissé furcsa, miért nem lehet nagyobb kulcsméretet használni?
  • Feltételezem, hogy a kulcsméret nem elengedhetetlen. Reméltem, hogy 64 bites kulcs elegendő egy 32 bites érték titkosításához.

Válasz

  1. Vannak létező algoritmusok, amelyek működnek ebben a forgatókönyvben?

Igen, valóban , számos 64 bites blokkos cifra létezik. A szokásos bölcsesség az, hogy nem ösztönzik őket általános használatra, mert a szokásos blokkos titkosítási módok általában elkezdik kiszivárogtatni az információkat, amikor a születésnapi határok közelében van (ebben az esetben kb. 30 Gbájt); aggodalomra ad okot.

Íme néhány lehetőség:

  • 3DES (más néven TDES); ezt a DES-t háromszor alkalmazzák három különböző billentyűvel; ennek megvan az előnye nagyon jól tanulmányozott.

  • Speck , amelynek 64 bites blokkos titkosítóval rendelkező paraméterkészletei vannak. előnye, hogy a leggyorsabb alternatíva, és olyan emberek tervezték, akik tudják, hogy csinálják, és meglepő mennyiségű kriptanalízist hajtottak végre.

  • Egy FPE titkosítás (például Az FF1, amely bármilyen tetszőleges blokkméretet képes kezelni (beleértve a 64 bitet is). Ennek az az előnye, hogy lehetővé teszi a módosítást (amely kényelmes hely az “egyéb rejtett paraméterek” elhelyezésére, ha úgy dönt, hogy ez előny Ez lassabb, mint az alternatívák; az FF1 esetén a biztonság az AES mögöttes biztonságából, valamint a Feistel-szerkezet bizonyítható biztonságából származik.

Most ezek 64 bitnél hosszabb kulcsokat vesznek igénybe; a bölcsesség az, hogy a 64 bites kulcs éppen nem elég hosszú.

  1. Mennyire lenne nehéz feltörni? Vagyis számítsa ki azokat az értékeket, amelyek visszafejtik az érvényes indexeket. véletlenszerűen találd ki a rejtjelezési szövegeket, és remélem, hogy megbotlik egy olyanban, amely visszafejt egy érvényes indexet.

    1. Mennyibe kerül a több minta befolyásolja a feltörés hatékonyságát?

    A fentiek bármelyikénél, ha hatalmas mennyiségű minta van, a támadás továbbra is megvalósíthatatlanná válik.

    1. Mi a baj egy olyan naiv megközelítéssel, mint …

    Az ARX rejtjelek (valójában bármilyen titkosítás, de főleg az ARX) bonyolultak a helyes helyrehozáshoz. Különösen az ARX rejtjelek nem hajlandóak nagyszerűen megkülönböztetni a differenciális és lineáris jellemzőket (ami minden ilyenet jelent. a formatervezést valóban alaposan tanulmányozni kellene, hogy megbizonyosodhasson róla).

    1. Milyen megközelítéseket, erőforrásokat stb. használna mind az algoritmus elemzéséhez, mind a jobb tervezéséhez?

    Javasolnám, hogy válasszon egy már elemzett tervet; felsorolok hármat fent.

    Megjegyzések

    • Én ' inkább a Blowfish-t részesíteném előnyben a 3DES-sel szemben, ha viszonylag kis kulcsbemenet változik. A 3DES biztonsága akkor is legyen kétséges, ha a kulcs 128 bitre bővült re (vagy inkább 112 bitre, természetesen).
    • @MaartenBodewes: Van-e idézete bárkinek, aki megmutatja, hogy a 3DES egy ismeretlen kulcs különböztethető meg a véletlenszerű egyenletes permutációtól?
    • Nem, természetesen nem. Azonban ' nem is kell okot adnom, ha a titkosításom ~ 80 bites vagy ~ 112 bites erősségű, ha 128 vagy 192 bites kulcsot táplálnak (én ' nem kételkedtem abban, hogy képes lesz rá, de hé, mi re nem minden poncsó). Úgy tűnik, hogy a kulcs mérete kérdéses. A paritásbitek eldobása ebben az esetben pazarló.
    • Részletesen kifejtheti a " állítást. Ezek a kulcsok 64 bitnél hosszabb ideig tartanak; a bölcsesség az, hogy a 64 bites kulcs nem elég hosszú. "? Mely algoritmusokhoz milyen hosszúságú kulcsok szükségesek, és a 64 bites kulcsok mire nem elég hosszúak?
    • @shader: a csak 64 bites kulcsok kiszolgáltatottak a nagy (jól finanszírozott) ellenfelek által végzett durva erőkeresésnek. Mivel általában elég könnyű valamivel nagyobb (pl. 128 bites) kulcsokat használni, amelyek nem ' senki számára sérülékenyek, általában a biztonságosabb opciót választjuk (akkor is, ha ' nem azonnal aggódik amiatt, hogy az NSA érdekelt lesz-e bennünket támadni, vagy ha az Amazon úgy dönt, hogy teljes felhőjét ránk fordítja …

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük