Léteznek erre a feladatra optimalizált/specializált, úgymond "hivatalos" titkosító algoritmusok?
Hogy el tudjam magyarázni : egyszerűsítsük most le a dolgot arra, hogy az adattitkosító jelen definíció szerint egy olyan függvény, aminek két bemenő paramétere egy folytonos, szekvenciális titkosítandó adathalmaz, és egy jelszó; a függvény ezzel a két adattal elvégez egy/sok determinisztikus transzformációt, aminek egy kimenete lesz, ami a titkosított adat. A feloldó pedig ennek a függvénypárja, ami bemenetként veszi a titkosított adatot (vagyis a függvény szempontjából csak a felhasználó tudhatja csak, hogy <az az adat> speciálisan a jelszóval párban <a titkosított adat>-nak értelmezhető), a jelszót, és erre elvégez uggyanúgy, de más transzformáció(ka)t, amiből a bemenetek jó párosítása esetén kijön az emberileg értelmezhető eredmény.
Nos, amire én specifikusan keresnék ilyen algoritmust, az az, amikor maga az adat és a jelszó is mindössze csak egy-egy, 32 bites fixpontos szám.
Tudom, hogy összeadással, szorzással, maradékos osztással, tervezett túlcsordulással meg bitműveletekkel én is összegányolhatnék valamit; vagy használhatnék egy átlagos AES/Blowfish/Twofish algoritmust, elvégre "digitálisan minden csak bináris számokból áll"...
Viszont én szeretnék valami erre a feladatra optimalizált, matematikai szemszögből nézve is a célnak megfelelő és optimális algoritmust választani. Nem is a hatékonyság/gyorsaság miatt, inkább azért, hogy ne legyen túl amatőr a program.
Biztos van valami hiperspecifikus algoritmus (32 bites) fix pontos számokra, amit nem ismerek.
De merek fogadni, hogy egy generalizált, modern titkosító algoritmus specifikus implementációja marginálisan lesz rosszabb nála.
Ha találsz ilyet, engem is érdekelne.
A mai, modern szimmetrikus titkosítási algoritmusok többmindent vesznek figyelembe, még működési módjuk is van, pl: ECB, CBC, stb), ilyen szempontból túl összetettek, hogy egyetlen függvénybe lehetne betenni őket és az általad kívánt módon használni.
Egyébként engem is érdekelne olyan megvalósítás, mint amit leírtál.
Erre találták ki az AES-t. Illetve a DES-t. Mindkettő kifejlesztésénél az volt a szempont, hogy egyszerűen, hatékonyan lehessen akár egyszerű hardverrel is megvalósítani.
Egyébként igazolható (és annak idején nekünk tanították ezt, bizonyítással együtt, de már nem emlékszem rá, csak arra, hogy volt ilyen): Ha egy kulcsot garantáltan csak egy alkalommal használsz fel akkor a leghatékonyabb megoldás az XOR függvény. Annál hatékonyabbról, gyorsabbról, egyszerűbbről nem tudunk. Egy hátránya van, ha sokszor használod ugyanazt a kulcsot akkor törhető válik nagyon egyszerűen.
"Egy hátránya van, ha sokszor használod ugyanazt a kulcsot akkor törhető válik nagyon egyszerűen."
Valamint az a hátrány, hogy a titkosított adat hossza és a kulcs hossza meg kell hogy egyezzen és a kulcs megfelelően random kell hogy legyen.
Köszönöm a szakmaias válaszokat! 👍
#3 : Egyrészt, az kicsit túlzás volt, hogy egyetlenegy függvényről írtam, az csak a szemléltetéshez kellett, hogy ne menjen félre a kérdésem, de ne is 50 oldal legyen.
Másrészt, úgy néz ki, simán van erre megoldás. Legalábbis az én esetemre.
Igaz, nem egyetlenegy módszerrel, több meglevő módszert kell összeollózni.
Azért még nem akarok előre inni a medve bőrére, megpróbálom a hét végéig lekódolni a dolgot.
De pl. az lenne az alap "trükk", hogy ugye a "jelszó", bár ugye egy 32 bites fixpontos szám, azt nem kell megőriznem, sőt, a feladat szempontjából nem is őrizhetem meg sem a kimenetben, sem máshol.
Úgyhogy tudom azt csinálni, hogy egy kiptográfiai hash algoritmust lefuttatok arra a számra, és így utána már tudok magasabb bithosszúságú, biztonságos blokktitkosító algoritmust is használni.
"Köszönöm a szakmaias válaszokat!"
Annak tűntek. :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!