Vissza

1. labor, a Caesar, keyword Caesar titkosítók


C++ binárisállománykezelés
C++ szövegállománykezelés
Java binárisállománykezelés
Java szövegállománykezelés
C# binárisállománykezelés
C# szövegállománykezelés

Titkos kulcsú rendszerek

1. Írjunk programot, mely Caesar módszerével titkosít és visszafejt egy tetszőleges szövegállományt. A szövegállományon végezzünk elő-feldolgozást, oly módon hogy minden betűt alakítsunk nagybetűvé. A titkosítást az angol ábécé nagybetűinek megfelelő számkódokon (számkód tábla) végezzük.

2. A szöveg Caesar módszerrel volt rejtjelezve, ahol a titkosítást az angol ábécé 26 betűje felett végeztük, a szóközöket és egyéb írásjeleket nem titkosítottuk. Határozzuk meg az eredeti szöveget és a rejtjelezéshez használt kulcsot az összes kulcs kipróbálásának módszerével.

3. A klasszikus Caesar módszere az angol (latin) ábécé felett végzi a titkosítást. Írjunk programot, amely a Caesar titkosítást/visszafejtést bináris állományokon, bájtok felett végzi.

4. A állomány Caesar módszerrel volt rejtjelezve, ahol a titkosítást bájtok felett végeztük. Határozzuk meg az eredeti txt típusű állományt és a rejtjelezéshez használt kulcsot az összes kulcs kipróbálásának módszerével. Az összes lehetséges kimeneti állomány között csak a felel meg az eredeti txt-nek, amelyik csak nyomtatható ASCII karaktereket és a 10 és 13-as ASCII kodú karaktereket tartalmazza.

5. A szövegállományban található szöveg Caesar módszerrel volt rejtjelezve, ahol a titkosítást az angol ábécé kis és nagybetűje plusz a kérdőjel és szóköz felett végeztük, összesen 54 szimbólumot használva. A kisbetűknek a 0 és 25 közötti számkódokat, a nagybetűknek a 26 és 51 közöttieket, a kérdőjelnek az 52, a szóköznek pedig az 53 számkódot feleltettük meg. Egyéb írásjeleket nem tartalmazott az eredti fájl. Határozzuk meg az eredeti szöveget és a rejtjelezéshez használt kulcsot az összes kulcs kipróbálásának módszerével.

6. Írjunk programot, mely a Keyword Caesar módszerével titkosít és visszafejt egy tetszőleges szövegállományt. A szövegállományon végezzünk elő-feldolgozást, oly módon hogy minden betűt alakítsunk nagybetűvé. A titkosítást az angol ábécé nagybetűinek megfelelő számkódokon (számkód tábla) végezzük.

7. Az alábbi titkosított szöveg Keyword Caesar módszerrel volt rejtjelezve, ahol a titkosítást az angol ábécé 26 betűje felett végeztük, a szóközöket és egyéb írásjeleket nem titkosítottuk. Határozzuk meg az eredeti szöveget, betűgyakoriság vizsgálattal (angol betűgyakoriság tábla), illetve határozzuk meg a rejtjelezéshez használt kulcsot.

NEW SLWWCM HI NEW YDVMMAYVD WLV FVZW MWPWLVD GHNVXDWYHGNLAXONAHGM NH MYAWGYW VGZ EWDJWZ DVT NEW IHOGZVNAHGM HI MWPWLVD QWMNWLG MYAWGNAIAY NLVZANAHGM, DACW JEADHMHJET, EAMNHLAHSLVJET VGZ FVNEWFVNAYM. NEW MYEHDVLDT NLVZANAHG HI NEW SLWWC VYVZWFAWM QVM FVAGNVAGWZ ZOLAGS LHFVG NAFWM QANE MWPWLVD VYVZWFAY AGMNANONAHGM AG YHGMNVGNAGHJDW, VGNAHYE, VDWRVGZLAV VGZ HNEWL YWGNLWM HI SLWWC DWVLGAGS QEADW WVMNWLG LHFVG MYAWGYW QVM WMMWGNAVDDT V YHGNAGOVNAHG HI YDVMMAYVD MYAWGYW. SLWWCM EVPW V DHGS NLVZANAHG HI PVDOAGS VGZ AGPWMNAGS AG JVAZWAV (WZOYVNAHG). JVAZWAV QVM HGW HI NEW EASEWMN MHYAWNVD PVDOWM AG NEW SLWWC VGZ EWDDWGAMNAY QHLDZ QEADW NEW IALMN WOLHJWVG AGMNANONAHG ZWMYLAXWZ VM V OGAPWLMANT QVM IHOGZWZ AG 5NE YWGNOLT YHGMNVGNAGHJDW VGZ HJWLVNWZ AG PVLAHOM AGYVLGVNAHGM OGNAD NEW YANT'M IVDD NH NEW HNNHFVGM AG 1453.

8. Nagyon egyszerű, de ugyanakkor nem biztonságos titkosító algoritmus az, amikor egy szöveget úgy rejtjelezünk, hogy permutáljuk az ábécé betűit: minden betűnek egy másik ábécébeli betűt feleltetünk meg. A titkosítás természetesen egyértelmű, azaz nincs két olyan betű, melyeknek ugyanaz lenne a titkosított értéke. Egy jól ismert feltörési stratégia az ismert nyílt szöveg alapú támadás, amikor a támadónak rendelkezésére áll egy titkosított szöveg, ami alapján megpróbálja az eredeti szöveget (nyílt szöveget) meghatározni. A feladat az, hogy fejtsünk vissza több titkosított sort, feltételezve, hogy minden sor esetében ugyanazt a titkosítási eljárást alkalmaztuk és a titkosított sorok között ott van a következő nyílt szöveg titkosított értéke:

the quick brown fox jumps over the lazy dog

A bemeneti állomány első sora egy számot tartalmaz, ami a tesztesetek számát jelenti. Ez után egy üres sor található, ami után a tesztesetek következnek, mindenik között egy-egy üres sorral. Minden teszteset több sorból áll, mely egy-egy titkosított szöveget jelent, a feltüntetett titkosítási eljárással. A titkosított szövegek csak kisbetűket és szóközöket tartalmaznak és egyik sem áll több mint 80 karakterből. Maximum 100 sorból áll a bemeneti állomány. Minden tesztesetre határozzuk meg a nyílt szöveget. Ha több nyílt szöveg is létezik, akkor csak az egyiket. Ha nem létezik nyílt szöveg, akkor írjuk ki, hogy No solution. A tesztesetek kimenetei közé is tegyünk egy-egy üres sort. Itt letölthető egy teszteset.
Megjegyzés:
A the quick brown fox jumps over the lazy dog szövegben
a többször előforduló betűk a következőek: e:3, h:2, o:4, r:2, t:2, u:2
a szavak betűszáma a következő: 3, 5, 5, 3, 5, 4, 3, 4, 3
a titkosított szövegben a következő pozíciókon meg kel egyezzenek a betűk:
e: 2, 28, 33
h: 1, 32
o: 12, 17, 26, 41
r: 11, 29
t: 0, 31
u: 5, 21

Forrás: S.S.Skiena, M.A. Revilla: Programming Challenges, Springer, 2003.