Научная статья на тему 'Use of computers for decrypting messages'

Use of computers for decrypting messages Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
101
19
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
šIFROVANJE / TRANSLATORNI šIFRAT / KRIPTOGRAFIJA / CRYPTOGRAPHY / ENCODING / TRANSLATIONAL CIPHER

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Stefanovic Radisa R., Srdanov Aleksa S.

Cryptography is as current as ever. The need to protect data and resources from unauthorised access and use has never ceased. This resulted in creating stronger protection and breaching most of those thought to be unbreachable. This paper analyses core problems and their implementation in breaching the translational cipher by using the programme language C.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Use of computers for decrypting messages»

CN Ó

O >

o

CN

C¿ UJ

GÉ 3 O O

_j

<

O

o

LU

I—

^

<

UPOTREBA RACUNARA ZA DESIFROVANJE PORUKA

Radísa R. Stefanovic, Aleksa S. Srdanov Visoka skola strukovnih studija, Pozarevac

DOI: 10.5937/vojtehg62-3831

OBLAST: matematika, informatika VRSTA CLANKA: strucni clanak

S A L

O ^

C

x

LU

O V

Sazetak:

Kríptografíja je danas, kao í u proslostí, veoma aktuelna. Nepre-kídno postojí potreba da se zastíte podací í resursí od neovlascenog upada í koríscenja. Rezultat toga je nastajanje sve jacíh zastíta í probí-janje vecíne oníh za koje se do nedavno míslílo da su neprobojne. U ovom radu analízíraju se osnovní problemí í njíhove ímplementacíje u okvíru razbíjanja translatornog sífrata korístecí programskí jezík C.

Kljucne reci: kríptografíja, sífrovanje, translatorní sífrat.

Uvod

Nekada se sa pojavom prvih racunara smatralo da je neka sifra ne-probojna ako je racunaru potrebno, recimo, godina da sirovom pretragom svih slucajeva pronade resenje. Nije proslo ni tridesetak godina od tada, a racunari taj isti posao mogu da zavrse u nekoliko minuta. Sta je sada neprobojna sifra? Mogucnosti i brzine racunara su tolike da nijedan posao vise nije problem za njih. Ipak, kombinacija coveka i racunara su tandem koji izgleda nema premca (Markagic, 2012, pp.250-265).

Postoji veliki broj razlicitih vrsta kriptografskih zadataka. Neki od njih su: - kriptogrami. Dat je sifrovani tekst koji treba desifrovati. Takvi pro-blemi najcesce se upotrebljavaju u vojnoj, diplomatskoj i ilegalnoj aktiv-nosti (Kuljanski, 2010, pp.65-77);

e-mail: radisastefanovic@yahoo.com

96

- kriptoritmi. To je posebna vrsta matematickih zadataka u kojima slova treba zameniti ciframa i dobiti tacne relacije koje su navedene u postavci;

- logicki kriptogrami. Predstavljaju razlicite matematicko-logicke za-datke u kojima treba naci zamenu koriscenih simbola sa nekim drugim, tako da polazna postavka promeni izgled, ali ne izgubi smisao. Odnosno, dobija se smislena struktura koja ima drugaciji zapis.

Osnovni problemi

Sifrovanje poruka oslobodeno je od svih pravila. Tako gledano, nije moguce napraviti univerzalni algoritam koji bi svaki sifrat mogao desifro-vati (Aho, Hipcroft, Ullman, 1978). Upotreba grube sile ili pretraga svih mogucih slucajeva cesto nije moguca. Racunar u slucaju da se ne radi o nekom pasvordu, koji moze proveriti, ne moze biti siguran da je posao odradio (Schneier, 1996). Dobijeni desifrovani tekst ima smisla samo co-veku. Iskljuciti coveka iz postupka desifrovanja jos uvek je nemoguce. Covek je taj koji smislja alate sa kojima racunar samo fizicki odradi posao koji bi coveku bio nemoguca misija. Osnovni problemi su sledeci:

- osmisliti alate kojima ce se pokusati razbiti neki sifrat (Scientific American Magazine 2005, pp.65-69),

- neprekidno pratiti proces i donositi odgovarajuce odluke. Coveka nikako ne treba iskljucivati iz procesa desifrovanja, jer kompjuter, cak i ako razbije sifru, ne moze to u opstem slucaju sigurno zakljuciti,

- implementirati alate unutar nekog programskog jezika (Evseev, et al., 2011, pp.15-39).

Prvi primer

Neduzni osudenik na smrt ceka izvrsenje smrtne kazne. Za to vreme njegov advokat odbrane dobija tajnu poruku i ako uspe da je desifruje moze spasti svog klijenta od nepravednog pogubljenja. Tekst tajne poruke glasi: STCZJUMQQZOLONSDEHGLLDNURUVDJXDLTYWCCRLSJNCNQOJ UYSSDULPLTTSRZRENZYUVGSJKYQQGJFZCEJSHXFSZNRKMCSV

CuCjnmmCfwSSCquvSulrcezbfiugythvwglpfmqgsjmifcp mnCrcroCortybqirrvbygCpSpuyggsoCvpsuohkrtdnws mcoffrldnorzqkpvsuCxjolnCddowvngScocuvnkhvwldk hgltnlrnltjqrxskwvmiptzpmmprvbympkrfqspqvuhkc.

Analiza problema za prvi primer

Ovakav zadatak nemoguce je resiti u opstem obliku. Takode, nije re-alno da jedan program moze desifrovati svaki tekst. Pretpostavicemo da se u ovom slucaju radi o translatu (Opplinger, 2005). Dakle, u sifrovanju

oo o

7

CD CD

!± cp

O cp

CO >

O ^

xn <u

T3

>o ro

.Q (D

O p

ZD

T3

0¿ '>

o c

<u OT

<N O

X

O >

o (N

0£ W 0£ ZD

o o

-J <

o

X

o

LU

I— >-

Q1

£

w <

-j

CD >Q

X LU I—

o

o >

je koriscena tehnika sa brojem odredene duzine koji se postavlja na tekst, pa se svako slovo u originalnom tekstu translira za broj koji na nje-ga pokazuje. Ako slucajno nije tako, moralo bi se nesto drugo probati.

Ovakav zadatak resava niz pomocnih programa kao alata, a ne je-dan program, jer se ne moze znati koji korak ce se koristiti posle nekog za koji se misli da bi bio usmeren ka cilju. Prvo cemo napisati program koji odreduje duzine izmedu pojavljivanja istih slova, jer one mogu poslu-ziti kao dobar pocetak za nalazenje duzine sifrata, odnosno niza brojeva sa kojima se slova transliraju (Hrg, Budin, Golub, 2004). U ugnjezdenim ciklusima racunace se pozicije pojavljivanja svih slova po abecednom re-dosledu i stampati odgovarajuci izvestaj. Dati sifrovani tekst smesticemo u znakovni niz.

Ukoliko se pojavi problem nasih latinicnih slova umesto znakova tre-ba koristiti standardne ASCII kodove date sa: Z - 64 S - 91 B - 92 C - 93 C - 94.

Prvi algoritamski alat mogao bi imati sledeci oblik: #include <stdio.h> #include <stdlib.h> main()

const char s[300] = {' S ' T' C ' ,'Z' J' U' ,'M' Q' Q' ,'Z' O ' L' O ' N' S' D ' E' H' G' L' L' D ' , ' N' ,' U' ,' R' ,' U' ,'V' ,' D ' ,' J' ,' X' ,' D ' ,' L' ,' T' ,'Y' ,'W' ,' C ',' C ',' R' ,' L ' ,' S ' ,' J ' ,'N ' ,' C ',' N' ,' Q' ,' O' ,' J' ,' U' ,'Y' ,' S' ,' S' ,' D ' ,' U' ,' L' ,' P ' ,' L' ,' T,' T' ,' S' ,' R^'Z' ,' R' ,' E ' ,' NyZ' ,'Y' ,' U' ,'V','G','S','J','K','Y','Q','Q','G','J','F','Z','C','E','J','S','H','X','F','S','Z','N',' R','K','M','C','S','V','C','U','C','J','N','M','M','C','F','W','S','S','C','Q','U','V', 'S','U','L','R','C','E','Z','B','F','I','U','G','Y','T','H','V','W','G','L','P','F','M',' Q','G','S','J','M','I','F','C','P','M','N','C','R','C','R','D','C','O','R','T','Y','B',' Q','I','R','R','V','B','Y','G','C','P','S','P','U','Y','G','G','S','O','C','V','P','S','U ' ,' O ' ,' H' ,' K' ,' R' ,' T' ,' D ' ,' N' ,'W' ,' S' ,'M' ,' C ',' D ',' F ' ,' F ' ,' R' ,' L' ,' D ' ,' N' ,' O ' ,' R' ,'Z' ,' Q ','K','P','V','S','U','C','X','J','D','L','N','C','D','D','O','W','V','N','G','S','C','O ','C','U','V','N','K','H','V','W','L','D','K','H','G','L','T','N','L','R','N','L','T','J', 'Q','R','X','S','K','W','V','M','I','P','T','Z','P','M','M','P','R','V','B','Y','M','P',' K','R','F','Q','S','P','Q','V','U','H','K','C'}; const char a[32] =

{A' ,' B ' ,' C ' ,' C ',' C ',' D;, 'D ',' E' ,' F ' ,' G ' ,' H' ,' I' ,' J ' ,' K' ,' L' ,'M' ,' N' ,' O ' ,' P' ,' Q' ,' R ','S','S','T','U','V','F','Z','Z','X','Y','W'}; short k, m, n;

short p[32][30] = {0};

for ( n = 0; n < 32; n++) {

m = 0;

for (k = 0; k < 280; k++) if (a[n] == s[k]) { P[n][m] = k+1; m++; }

}

for (m = 0; m < 32; m++) { printf("%c a[m]); for ( n = 1; n < 20; n++)

if (P[m][n]-p[m][0] > 1) printf("%2d p[m][n]-p[m][0]); printf("\n");} system(MPAUSE");

return 0; }

Posle startovanja ovog programa na ekranu se dobije sledeci ispis: A :

B : 36 42 144 C : 90 138 144 186 218

C : C :

D : 6 12 15 36 168 179 197 198 216

D :

E : 46 64 100

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

F : 8 26 42 54 62 113 114 191 G : 50 57 104 110 116 144 151 152 200 216 H : 66 108 162 210 216 258 I : 18 36 132

J : 24 36 42 66 72 77 94 132 203 239 K : 19 109 129 155 161 177 195 205 L : 8 9 20 27 42 44 102 118 182 198 219 224 227 230 M : 85 94 95 126 131 136 181 245 251 252 258 N : 9 28 30 50 75 86 130 171 182 197 204 212 224 227 O : 2 35 140 162 168 186 204 211 P : 76 87 110 112 121 147 199 202 205 211 217 Q :37 66 67 101 126 148 192 237 262 265

R :13 35 37 65 90 121 123 127 133 134 157 168 173 215 221 236 243 S :10 19 30 54 96 132 147 164 208 231 S :14 50 82 86 105 106 111 165 176 219 T :31 55 56 123 151 181 235 241 253 U :18 20 42 47 61 91 104 107 116 162 172 199 218 269

<N О

X

О >

о <N

C¿ LJÜ 0£ ZD O O

_J <

o

X

o

Ш

I— >-

Q1

£

(Л <

-j

O ■O

X Ш I— O

O >

V :41 68 84 100 133 148 176 190 198 202 224 235 247 F : 8 26 42 54 62 113 114 191

Z :18 27 138 Z : 6 61 114 252 X :55 177 217

Y :15 32 39 90 120 128 135 230 W :70 93 151 181 195 215 Press any key to continue . . .

U prethodnom ispisu najvise paznje treba posvetiti onim siovima u kojima se pojavijuje prepoznatijiva periodicnost (Tiiborg, 2005). S ti m u vezi, interesantna siova su: B, C, I, ... Iz njihovih peroida moze se zakiju-citi da duzina brojne sifre je б iii deiiiac od б. Nista se ne gubi pretpostav-kom da je duzina veca, sto ne vazi obrnuto.

Dakie, nasii smo da je moguca duzina transiatorne sifre б. Ostaje da nademo brojeve od kojih se sastoji. Radi toga, pronadimo sve moguce pozicije gde se desava promena originainog teksta sa transiacijom sa si-from duzine б. Dovoijno je samo prethodni program promeniti u jednoj je-dinoj naredbi i to onoj u kojoj se vrsi stampanje rezuitata. Dakie, treba za-meniti red:

if (p[m][n]-p[m][0] > 1) printf("%2d ", p[m][n]-p[m][0]);

sa siedecim:

if (p[m][n] > 0) printf("%2d ", p[m][n] % 6);

i u istom cikiusu pustiti da se stampa i nuiti (prvi)cian.

Posie startovanja program daje siedeci rezuitat: A :

B : 5 5 5 C : 3 3 3 3 5 С : С:

D : 4 4 1 4 4 3 3 4 4

D :

E : 3 3 3

F : 2 2 0 0 2 5 0 5 G : 3 4 3 3 3 1 2 3 3 1 H : 0 0 0 0 0 0 I : 1 1 1

J : 5 5 5 5 5 4 3 5 4 4 K : 1 1 3 5 5 3 3 1 L : 2 3 2 3 0 2 0 4 2 0 3 2 5 2 M : 2 5 0 1 0 5 2 0 0 1 1

N : 5 0 2 4 5 4 0 5 4 1 2 4 4 1

O : 1 4 1 5 5 5 5 0

P : 5 4 3 5 2 4 2 5 2 2 2

Q : 3 3 2 3 1 2 0 2 5 0 3

R : 2 0 2 0 1 2 4 2 2 3 2 1 0 0 0 3 4

S : 2 5 4 4 4 4 1 0 2 1

S : 3 3 5 3 4 5 4 4 3 4

T : 3 3 4 5 3 3 3 3 3

U : 0 2 0 5 1 1 2 5 2 0 4 1 2 5

V : 2 5 3 1 4 1 5 1 3 1 5 4 4 F : 2 2 0 0 2 5 0 5

Z : 1 4 1 Z : 4 5 4 4 X : 1 3 1

Y : 1 0 1 4 4 0 1 0 W : 3 2 0 0 2 4

Press any key to continué . . .

Ovu tabelu tumacimo tako sto vidimo da se slovo B uvek povecava na 5. poziciji, slovo H na 6, itd. Sada je potrebno malo eksperimentisati, odnosno napraviti neku pretpostavku, pa je zatim proveriti. Recimo, C se najcesce povecava na 3. poziciji, a to je najverovatnije od slova A, a B se najcesce javlja na 5. mestu, sto je najverovatnije takode uvecanje od slova A. Slovo D se najcesce povecava na 4. mestu, sto omogucava pretpostavku da je na tom mestu broj 5 s obzirom na slovo A.

Sledecim alatom mozemo, na osnovu neke hipoteze, izvrsiti dekripto-vanje i time tacno odrediti i ostale cifre u nepoznatom brojnom translatu.

U program unosimo niz od 6 brojeva, a on dati sifrat prevrce prema tom translatu. Navodimo samo deo koji je u okviru glavnog programa i sa kojim testiramo neku od pretpostavki.

short p[6] = {4,3,2,3,1,2}; /* niz koji sadrzi pretpostavku o translatu */ for ( k = 0; n < 280; k++) { for (n = 0; n < 32; n++) if (s[k] == a[n])

{ m1 = k % 6; m1 = n - p[m1]; if (m1 < 0) m1 = m1 + 32; printf("%c", a[m1]);

}

00 o

7

co

CD !±

O

(O >

O

<u

T3

2 ro

>0 ro

.Q <D

O

ZD

T3

0¿

■o >

o c

<u OT

}

Na kombinaciju koju smo naveli program daje sledeci ispis:

PRAVI VINOVNIK KRADE DIJAMANATA I UBISTVA VOJNIKA KOJI SU PRATILI SPROVOD IZVRSENIH U NOCI DVADESET DRUGOG JANUARA ILJADU OSAMSTOTINA DVADESET SESTE GODINE NIJE I DAKLE ZOAM DA COSTA NEOPRAVDANO OSUDEN NA SMRT NEGO SAM TO JA BEDNI CINOVNIK UPRAVE DIJAMANTSKE OBLASTI JEST JA JEDINI KOJI SE POTPISUJEM SVOJIM PRAVIM IMENOM ORTEGA

Drugi primer

Sledeci problem postavljen je davne 1906. godine. U narednih 50 godina bilo je poznato samo jedno resenje, a kasnije se navodi jos 6 na-denih resenja. Zadatak je da se desifruje sledece deljenje tako sto se na svakom mestu nalazi neka cifra. Za nule ispred brojeva u medurezultati-ma posebno se ne naglasava da li su dozvoljene ili ne. Za glavno resenje pretpostavicemo da sa nulama ne pocinje zapis brojeva (Petkovic, 1988).

xx7xxxxxxx : xxxx7x = xx7xx -xxxxxx xxxxx7x -xxxxxxx x7xxxx -x7xxxx xxxxxxx -xxxx7xx xxxxxx -xxxxxx 0

Analiza problema za drugi primer

Metoda „grube sile" je najjednostavniji nacin da se napravi potreban algoritam. Medutim, mora se biti veoma oprezan sa primenom metode „grube sile". Ako bismo birali nepoznate potrebno je razmotriti sve sluca-jeve unutar tri gornja broja. Tako, ako bismo uzeli za nepoznate cifre od deljenika i delioca imali bismo 16 punih ciklusa sa po 10 mogucnosti, sto je jos uvek prevelik zalogaj i za danasnje racunare. Zadatak se moze interpretirati kao problem mnozenja jednog sestocifrenog broja sa jednim petocifrenim brojem tako da se dobije desetocifreni broj uz dodatna ogra-nicenja koja su vidljiva iz datih medurezultata. Recimo, mnozenje sa brojem 7 sa deliocem sastoji se od tacno 6 cifara. Kako su prethodni i nared-

ni medurezultat sedmocifreni to su prethodna i naredna cifra u deliocu vece od 7. Osim toga, prva cifra u deliocu moze biti samo 1.

U algoritam treba ugraditi funkciju koja ce proveravati da li se u me-durezultatima cifra 7 nalazi na oznacenim mestima. Pretpostavicemo da se traze samo resenja koja svakom nepoznatom mestu dodeljuje cifru, a prvom mestu cifru razlicitu od nule. Drugacije receno, da medurezultati i deljenik ne pocinju sa nulom. To uzrokuje da zadatak ima jedinstveno re-senje. Ostala resenja se dobijaju kada dozvolimo da medurezultati pocnu cifrom nula ili da dati iksovi ne predstavljaju brojeve duzine koliko je na-znaceno.

Program bi mogao da ima sledeci oblik:

#include <stdio.h>

#include <stdlib.h>

int dcifra(double broj, int mesto);

int main( ) {

int a, b, c, d, m, n, p, q; double x, y, k1, k2, k3, k4; for(a = 0; a < 10; a++) for (b = 0; b < 10; b++)

for (c = 0; c < 10; c++) for( d = 0; d < 10; d++) for (m = 1; m < 10; m++) for (n = 8; n < 10; n++) for(p = 8; p < 10; p++)

for (q = 1; q < 10; q++) {

y = 100000 + 10000*a + 1000*b + 100*c + 70 + d; x = y*(10000*m + 1000*n + 700 + 10*p + q); /* deljenik mora biti desetocifren sa cifrom 7 kao osmom

oo o

7

CD CD

!± CP

O CP

(O >

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

O

<u

T3

2 ro

>o ro

ro

.Q

(D

O P

ZD

T3

0¿

■o >

o c

<u OT

od pozadi */

if ((x < 1e9) || (x > 1e10) || (dcifra(x, 8) != 7))

break;

/* medjurezultati pri deljenju */

k1 = m*y; k2 = n*y; k3 = 7*y; k4 = p*y;

/* medjrezultati ne smeju poceti sa nulom */

if ((k1 < 1e5) || (k2 < 1e6) || (k3 < 1e5) || (k4 < 1e6))

break;

/* provera postojanja ostalih sedmica u medjurezultatima */ x = x - k1*10000; if (dcifra(x,5) != 7) break; x = x - k2*1000; if (dcifra(x, 7) != 7) break; if (dcifra(k3, 5) != 7) break; if (dcifra(k4,3) != 7) break; printf(" 1 %d%d%d7%d * %d%d7%d%d \n",

a,b,c,d,m,n,p,q);

}

system("PAUSE"); return 0;

}

int dcifra(double broj, int mesto) {

long vrati; double medju;

switch(mesto) {

case 3: medju = broj/100; break; case 5: medju = broj/10000; break; case 7:

medju = broj/1000000; break; case 8:

medju = broj/10000000;

}

vrati = (long)medju; vrati = vrati - (vrati/10)*10; return (int) vrati;

}

Posle startovanja programa dobija se jedinstveno resenje: 125473 * 58781

Press any key to continue . . .

(m)

Za dobijanje ostalih resenja potrebno je iz programa iskljuciti proveru duzine medurezultata i pustiti ogranicenja za indekse u punom opsegu. Tada program nalazi 378 razlicitih resenja koje zbog ogranicenosti prostora ne navodimo. Obuhvacena su i ona u kojima delilac ima manje od 10 cifara. Jedino je postovan polozaj sedmica gledano zdesna ulevo, sto za brojeve i predstavlja stvarnu poziciju.

Zakljucak

U radu su prikazani rezultati istrazivanja mogucnosti desifrovanja sifri-ranog teksta uz koriscenje racunara primenom programskog jezika C. Ana-lizirani su primeri desifrovanja slovnog i brojcanog sifrata, koji mogu biti po-sebno interensantni za primenu u vojnim, policijskim i diplomatskim sluzba-ma. Provedena analiza pokazuje da se uz dobru pretpostavku coveka, i upotrebom racunara sa nizom pomocnih programa kao alata, u razumnom vremenu moze doci do zeljenog cilja (Lomonaco, 1998, Mollin, 2007). Kako nije moguce napraviti univerzalni algoritam koji bi svaki sifrat mogao desifro-vati, to je logicko zakljucivanje i odabir alata neizostavno obaveza coveka. Na kraju, i sam desifrovani sadrzaj ima smisla samo za dalju aktivnost coveka, dok je racunar samo fizicki pomogao da se u znatno kracem vremenu odradi zadati posao. Na dva prakticna primera istrazene su mogucnosti de-sifrovanja i opravdanost konstatacije da tandem coveka i racunara nema premca, kada je u pitanju resavanje kriptografskih zadataka.

Literatura

Aho, A., Hopcroft, J., Ullman, J., 1978. "The design and analysis of computer algorithms", Addison-Wesley Publishing company.

Evseev, S. P. (Евсеев, С. П.), Dorohov, O. V. (Дорохов, А. В.), Korolj, O. G. (Король, O. Г.), 2011. "Mechanisms of protection of information in computer networks and systems" (Механизмы и протоколы защиты информации в компьютерных сетях и системах), Vojnotehnicki glasnik/Military Technical Courier, Vol. 59, No. 4, pp.15-39, Ministarstvo odbrane Republike Srbije, Beograd.

Hrg, D., Budin, L., Golub, M., 2004. "Quantum Cryptography and Security of Information Systems", Proceedings of the 15th International Conference on Information and Intelligent Systems.

Kuljanski, S., 2010. "RSA algoritam i njegova prakticna primena", Vojnotehnicki glasnik/Military Technical Courier, Vol. 58, No. 3, pp. 65-77, Ministarstvo odbrane Republike Srbije, Beograd.

Lomonaco, S.J., 1998. "A Quick Glance at Quantum Cryptography", archive eprint quant.ph/9811056.

Markagic, M., 2012. "Protokoli i pravci razvoja kvantne kriptografije", Vojnotehnicki glasnik/Military Technical Courier, Vol. 60, No. 1, pp.250-265, Ministarstvo odbrane Republike Srbije, Beograd.

oo о

7

CD CD

cp

О

cp >

О ^

;<л <u

T3

2 ro

>o ro

.Q CD

О p

ZD

T3

od

■о '>

о с

<u ю

Mollin, R.A., 2007. "An Introduction to Cryptography", 2nd Edn, Chappman & Hall/CRC.

Oppliger, R., 2005. "Contemporary Cryptography", Artech House Petkovic, M., 1988. "Zanimljivi matematicki problemi", Naucna knjiga, Beograd. Schneier, B., 1996. "Applied Cryptography", 2nd Edn. John Wiley& Sons. Scientific American Magazine, 2005. Best-Kept Secrets, p. 65-69, January. Tilborg, H., 2005. "Encyclopedia of Cryptography Security", Springer.

USE OF COMPUTERS FOR DECRYPTING MESSAGES

FIELD: Mathematics, Information Technology ARTICLE TYPE: Professional Paper

Summary:

Cryptography is as current as ever. The need to protect data and resources from unauthorised access and use has never ceased. This resulted in creating stronger protection and breaching most of those thought to be unbreachable. This paper analyses core problems and their implementation in breaching the translational cipher by using the programme language C.

Introduction

When the first computers appeared, a code was deemed to be unbreachable if a computer needed,e.g. a year to find a solution though raw search of all cases. After mere 30 years, computers can finish that job in minutes. What code is unbreachable now? Possibilities and speed of modern computers are such that there are no tasks representing a problem for them. Still, a combination of a man and a computer represents an unmatched team.

Core problems

Message encoding is free of any rules. If one conceives it in that way one cannot make a universal algorithm that could decode any cipher. The use of brute force or searching all possible cases is often impossible. In cases when there is no a password that could be checked, the computer cannot be sure if the job was done. A received decoded text has sense only to the man. It is still impossible to exclude the man from the deciphering process. The man creates tools used by the computer for the physical job that would be impossible for the man to achieve by himself.

The first example

An innocent death-row convict is waiting for the sentence to be executed. In the meantime, his lawyer receives a coded message, and if he succeeds in deciphering it, he might save his client's life from unjust death sentence.

Analysis of the problem for the first example

Such a task cannot be solved in a general form. Also, one cannot expect a single programme to decipher any text. Such a task is resolved by a string of auxiliary programmes as tools, not a single programme, because one does not know what step to use after another one that was thought to lead to a goal. First, we would code a programme designating the lengths between the appearances of the same letters, because they can serve as a good example for finding the length of the cipher, i.e. a string of numbers the letters are translated with. In nested cycles, one will calculate positions of appearance of all letters in the alphabetical order and print an appropriate report. The given coded text is placed into the stream of symbols.

The second example

This problem was established long ago, in 1906. In the following 50 years, only one solution was found and another six were found later. The task is to decipher the following division, by placing a digit to each position. For zeros in front of numbers in interim results, one does not specify especially whether they are allowed or not. For the final solution, we would assume that a stream of numbers does not start with zeroes.

Analysis of the problem for the second example

The task can be interpreted as a problem of multiplying one six-digit number with a five-digit number so that one receives a ten-digit number with additional limitations visible from the given interim results. The algorithm should include the function that would check whether the number 7 is in designated positions in interim results. We would assume that one seeks only for solutions that assign a digit to an unknown position, and a digit different from zero to the first position. In other words, interim results and the numerator should not start with zero. This causes the task to have a unique solution.

Conclusion

The paper shows the results of researching possibilities to decipher an encoded text by using the computer with the application of the programming language C. The paper shows some examples of deciphering an alphabetical and numerical cipher that could be especially interesting for the application in the military, police or diplomacy. The analysis shows that, with a good assumption by the man, and using computers with a stream of auxiliary programmes as tools, one can reach the goal in reasonable time. Sinceit is not possible to create a universal algorithm that could decode any cipher, the logical conclusions and selection of tools are the prerequisite of the

oo o

7

CD CD

!± p

o p

a

>

ro e

T3

ra ar

>o

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

ar a

.Q

re tr

o p

ZD

T3

od

■o >

o n fa

e t

man. Finally, the very contents of the deciphered text have sense only for further human activities, while computers help only physically to finish the task in a significantly shorter period. The two practical examples explore possibilities of deciphering as well as a justification c5 of the statement that a team made of the man and the computer is

unmatched when it comes to resolving cryptographic tasks.

>

0

01

on

LU

X LU I— O

o >

Key words: cryptography, encoding, translational cipher.

Od

g Datum prijema clanka/Paper received on: 26. 04. 2013. o Datum dostavljanja ispravki rukopisa/Manuscript corrections submitted on: 27. 02. 2014. jj Datum konacnog prihvatanja clanka za objavljivanje/ Paper accepted for publishing on: o 28. 02. 2013. z x o

LU

I— >-

Od <

< -J

CD >Q

i Надоели баннеры? Вы всегда можете отключить рекламу.