Forum » Programiranje » substitucijska šifra
substitucijska šifra
Yacked2 ::
Pozdravljeni,
izdelujem program za lomljenje substucijske šifre. Proces naj bi bil čim bolj avtomatiziran. Sicer programiram v phpju, ampak važja je ideja.
Moj plan programa 1:
generiranje vseh možnosti -> preglej smiselnost (beri: preveri če so v izhodnem nizu "je","to","in","smo" ter podobne fraze ki so zelo pogosto uporabljene. -> smiselne izpiši
Najprej sem želel izračunati koliko možnosti sploh je zato sem uporabil !(klicaj na kalkulatorju), deluje takole:
stevilo črk * stevilo črk -1 * stevilo -2 *....tako do *1. Sedaj sem pa ugotovil da je to preveč kombinacij saj mi že samo pri izpisovanju n = n+1 ustavilo, saj je za izpisovanje 26! preveč. Zato sem najprej uporabil anaizo besedila.
Moj plan programa 2:
preštejem posamezne znake v tekstu (ga je dovolj da drži a = 10,87 % e = 10,78% ter i = 9,34 %) nato največkrat ponovljene črke zamenjam s temi, tako dobim 3 možnosti. Sedaj pa nevem kako naprej, saj je precej zakomplicirano
Ima kdo kakšno idejo ?
Hvala !
izdelujem program za lomljenje substucijske šifre. Proces naj bi bil čim bolj avtomatiziran. Sicer programiram v phpju, ampak važja je ideja.
Moj plan programa 1:
generiranje vseh možnosti -> preglej smiselnost (beri: preveri če so v izhodnem nizu "je","to","in","smo" ter podobne fraze ki so zelo pogosto uporabljene. -> smiselne izpiši
Najprej sem želel izračunati koliko možnosti sploh je zato sem uporabil !(klicaj na kalkulatorju), deluje takole:
stevilo črk * stevilo črk -1 * stevilo -2 *....tako do *1. Sedaj sem pa ugotovil da je to preveč kombinacij saj mi že samo pri izpisovanju n = n+1 ustavilo, saj je za izpisovanje 26! preveč. Zato sem najprej uporabil anaizo besedila.
Moj plan programa 2:
preštejem posamezne znake v tekstu (ga je dovolj da drži a = 10,87 % e = 10,78% ter i = 9,34 %) nato največkrat ponovljene črke zamenjam s temi, tako dobim 3 možnosti. Sedaj pa nevem kako naprej, saj je precej zakomplicirano
Ima kdo kakšno idejo ?
Hvala !
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!
[D]emon ::
Upam, da se zavedas, da je vrst substitucijske sifre vec. Za najbolj enostavne (kjer je keyspace se vedno 26! oziroma okrog 88 bitov) je dovolj frekvencna analiza okrog 50 crk kriptopisa. Frekvencna analiza pa je odvisna od jezika v katerem je cistopis. (V razlicnih jezikih so frekvence crk razlicne)
Predlagam, da si malce vec preberes o frekvencni analizi. Si ze na pravi poti s kombinacijo obeh zgornjih tock. Torej: najprej frekvencna analiza -> iskanje pogostih besed -> ??? -> PROFIT!!1
Predlagam, da si malce vec preberes o frekvencni analizi. Si ze na pravi poti s kombinacijo obeh zgornjih tock. Torej: najprej frekvencna analiza -> iskanje pogostih besed -> ??? -> PROFIT!!1
Mavrik ta forum uporablja za daljsanje e-penisa. Ker si ne upa iz hise.
Zgodovina sprememb…
- spremenilo: [D]emon ()
Yacked2 ::
Upam, da se zavedas, da je vrst substitucijske sifre vec. Za najbolj enostavne (kjer je keyspace se vedno 26! oziroma okrog 88 bitov) je dovolj frekvencna analiza okrog 50 crk kriptopisa. Frekvencna analiza pa je odvisna od jezika v katerem je cistopis. (V razlicnih jezikih so frekvence crk razlicne)
Predlagam, da si malce vec preberes o frekvencni analizi. Si ze na pravi poti s kombinacijo obeh zgornjih tock. Torej: najprej frekvencna analiza -> iskanje pogostih besed -> ??? -> PROFIT!!1
Gre se za čisto enostavno bijektivno fukncijo ki črki priredi drugo črko.
za sedaj sem našel da je za ' skoraj vedno t, e spada med pogostejše črke, tako dobim t*e, ugibam da umes dam h. Poiščem črke ki stojijo same, ter če obstaja |črka]* tako ugotovim da gre |črka| je a, * pa n, za an je samostalnik na a,e,i,o,u, ker imam e ter a že izločen nadaljujem... kjer dobim a** je to verjetno "and" in tako naprej. če se nahaja XYZ'T ter XYZ je to verjetno can oz. don določim na podlagi a-ja. Ročno lahko uizi dekriptiram, sedaj želim spisati program, ki to naredi namesto mene.
Še kašne frekvenčne fore ?
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!
Smurf ::
Zakaj ne naredis tako kot je [D]emon predlagal? Nardis frekvencno analizo svojega teksta (kolikokrat se kaksen znak pojavi) in ga primerjas s splosno frekvencno analizo angleskega teksta, nekaj pise ze tukaj klik zagotovo pa se da najti se precej vec na internetu. Na ta nacin izluscis ne vem prvih 8 crk (ne samo e). Potem lahko nadaljujes z najbolj pogostim parom crk in besed. Ce na koncu se kaj ostane z brutforcas, kontrolo delas pa tako da s slovarjem pregledujes ali so besede smiselne.
dasf ::
http://www.simonsingh.net/The_Black_Cha...
Še nekaj "bližnjic" ki jih lahko uporabiš.
+V angleščini črki Q razen v redkih izjemah vedno sledi U.
Še nekaj "bližnjic" ki jih lahko uporabiš.
+V angleščini črki Q razen v redkih izjemah vedno sledi U.
[D]emon ::
Gre se za čisto enostavno bijektivno fukncijo ki črki priredi drugo črko.
V tem primeru ze mogoce. Kaj pa homofonicna substitucija ? Polialfabetska substitucija ? Poligrafska substitucija ? Konec koncev, kaj pa OTP ? (Ki je, mimogrede, ob upostevanju pravil edina matematicno nezlomljiva enkripcija)
Hja, piki. Specifika je prasica.
Bruteforce napadi na substitucijo imajo pa za primarni vektor frekvencno analizo, pod kar spadajo znane posebnosti jezika v katerem je cistopis, in nato dictionary attack na preostal tekst, kjer se za hinte pobere stvari, ki si jih dobil s frekvencno analizo.
Bottom line: Zadeva ni tako simpl kot nekateri mislijo. Ceprav gre "samo" za substitucijo.
Mavrik ta forum uporablja za daljsanje e-penisa. Ker si ne upa iz hise.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Kako razvozlati šifro ?!Oddelek: Loža | 2789 (2201) | Smrekar1 |
» | Kriptografija in kriptoanalitika (strani: 1 2 )Oddelek: Znanost in tehnologija | 9217 (7308) | [D]emon |
» | Kako stisnit (Zrarat) datoteko veliko 700mb na 20mb???Oddelek: Pomoč in nasveti | 4837 (4311) | StratOS |
» | merjenje obratovOddelek: Programiranje | 1703 (1495) | neoto |
» | težave z geslom v worduOddelek: Programska oprema | 2216 (1914) | d_dunka |