Olyan egyszerű titkosítási algoritmust miként lehet írni, amely ugyanazon bemeneti szövegre mindig más-más titkos szöveget ad vissza?
Gondolok itt arra, hogy például a szöveg: "alma", akárhányszor kódolnám a programmal, mindig más-más titkos szöveget kapnék vissza. Az algoritmust nem úgy gondolom, hogy pl. egy random számot előállítana minden alkalommal és pl. beírná a fájl elejére kódoláskor, majd dekódoláskor kiolvasná és ezel végezné el a dekódolást. :-)
Kaphatok ötleteket, ezt ki miként oldaná meg, nagyon érdekelne a dolog, minek nézzek utána.
Sajnos "nem tartok sehol", az alábbi kódrészlet szinte egyenlő a nullával. :-(
Program Kodol_Dekodol;
Var
szov : String;
Procedure kodol;
Begin
ReadLn(szov);
End;
Procedure dekodol;
Begin
ReadLn(szov);
End;
Begin
Write(#13#10,'Kérem a szöveget : ');
kodol;
dekodol;
End.
Tessék, egyszerű, laikusok által is érthető rejtjelezés:
Ezeket ismerem (meg Vigenere és ATBAS stb is), csak ezek azt nem valósítja meg hogy minden szövegre más-más kimenetet adna.
Valamint azokat titkosírás létrehozására használják.
Amit az első válaszoló írt, az működik, csak az nem tisztán algoritmus, inkább szótár. Ha tiszta algoritmus kell, azzal az a baj, hogy a visszafejtés mi alapján történjen. Tehát adhat változó kimenetet a kódolás, de ahhoz valaminek változnia kell kódoláskor. Ami változik, azt ismernie kell a dekódoló algoritmusnak is, tehát tárolni kell.
Szoktak olyat, hogy a kulcsot az aktuális időből generálják. De a dekódolásnál akkor is tudni kell, mikor lett kódolva.
Azt mondjuk megpróbálhatod, hogy mondjuk az időből, vagy akár random módon generálsz egy kulcsot, és azt valamilyen fix módszerrel "beleszövöd" a titkosított szövegbe. Tehát két lépésben kódolsz. Először egy random kulccsal, utána egy fix kulccsal beleviszed az első kulcsot. Visszafejtés fordított sorrendben. (Aztán hogy ez biztonságosabb-e, az más kérdés.)
Köszönöm a választ.
A program .exe fájl bájtjaival történő "xor" művelet pl. azért nem olyan jó, mert csak x ezer byte méretű az exe és ezután - ha a szöveg hosszabb - a kulcs ismétlődni fog és ami nem One Time Pad módon van XOR-olva (ugyanolyan hosszú fájl random fájl minden bájtja az üzenettel XOR-olva -, az feltörhető.
Olyan megoldás, ami esetén a kimenet mérete ugyanakkora, mint a bemenet mérete, nem létezik. Ha létezne, az megfordítva kvázi végtelen mélységű (újra)tömörítésre adna lehetőséget, alapjaiban bojgatná meg az adatelméletet ezen a téren.
Olyan megoldásnak viszont, ami esetén a kimenet valamivel nagyobb (hosszabb), mint a bemenet, léteznie kell. Ilyenkor pedig, amennyivel nagyobb/hosszabb a kimenet, annyi féle különböző kimenet kapható egy bemenetre.
Ha pl. legalább 1 bájttal hosszabb a kimenet, mint a bemenet, akkor egy bemenetre 256 különböző kimenet kapható.
Privát kérés esetén akár kész megoldással is tudok szolgálni C-ben. ;)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, 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!