» »

Kriptografija in kriptoanalitika

Kriptografija in kriptoanalitika

«
1
2

Pegaz ::

Opravičujem se, če sem postavil to temo v napačno sekcijo, vendar se mi je ta zdela najprimernejša.

Pred kratkim sem na morju prebral "Knjigo šifer : umetnost šifriranja od staregaEgipta do kvantne kriptografije" in me je navdušila. Avtor opisuje zgodovino kriptografije in kriptoanalitike (nasprotja kriptografije - razbijanje šifer) in prav tako pojasni načine, kako šifre narediti in tudi, kako jih razdreti.

Verjetno najpreprostejša kriptografija je t.i. Cezarjev premik, ki vsako črko v stavku premakne za določeno število mest. Več o tem lahko preberete na Wikipediji. Šifro se lahko razbije na zelo lahko, saj potrebujemo le 25 (odvisno od jezika) poizkusov.

Naslednja stopnja je t.i. monoanalitična šifra. Vsaka črka se zamenja z naključno drugo črko z abecede (A=F, B=Z, C=N, ...). Šifro se da na precej lahek način razbiti s frekvenčno analizo. Št. vsakega znaka s kodiranega besedila primerjamo z povprečnim pojavom črk v abecedi, v kateri naj bi bilo to besedilo. Če ima besedilo največ znakov X, F in B, so to verjetno eni od znakov E, A in T, ki se v angleščini največkrat pojavijo. Prav tako lahko iz največkrat pojavljenih skupkov znakov (GLB, NDS) ugibamo, ali so to najpogostejše besede (AND, THE).

Stvar se zaplete, če v kodiranem besedilu ni presledkov, če je pisano v narečju oz. so črke izpuščene, če ima dodane dodatne znake, ki ne pomenijo ničesar.

Frekvenčna analiza - Wiki

Portal kriptografije na wikipediji

Kratek opis knjige šifer - Mladina

Se kdo ukvarja s kriptografijo/kriptoanalitiko?

Ali je šel kdo razbijat izziv v Knjigi šifer? Ima deset stopenj, vsaka je težja od prejnšje. Meni je uspelo razbiti le dve.

Ali je kdo poskušal razbiti šifro, ki naj bi opisovala točno mesto zakopanega zaklada (trenutno se ne spomnim imena)?

Lep pozdrav
  • spremenil: Pegaz ()

poweroff ::

No ja, eni se tudi malo zanimamo za te zadeve. 8-)
sudo poweroff

Enigma666 ::

Jaz sem prebral knjigo šifer, in rešu sm smo dve stopnje: cezerjanko(pršla mi je v latinščini) in monoalfabetsko šifro brez homofonov. naprej pa je že težko:) pa tista šifra misli da je bailova šifra(ki je zakopan zaklad) je že rešena:/

Barakuda1 ::

Če ustvariš svoj (nov) jezik, svojo novo pisavo, s povsem novim pravopisom (kar nov jezik predpostavlja), in vse skupaj še sklanfaš v eno do šifriranih oblik sporočil, dvomim, da bi se jo dalo razvozljat.

kekz ::

Po mojem mnenju bi se dalo. Razvozljali so tudi hieroglife in klinopis.
Je pa res, da Japonci med drugo vojno menda niso razvozljali ameriških sporočil, ki so bili "šifrirani" v nek indijanski jezik. Ampak metode in sredstva takrat so bila še veliko bolj enostavna.

Samo za primer.
V času študija šifriranja sem bral eno seminarsko od profesorja, kjer je navajal, da je za razbitje DES šifrirnega algoritma potrebnih nekaj milijonov let. Danes je menda svetovni rekord 11 ur, vendar še vedno po metodi z grobo silo. ;)

Barakuda1 ::

Po mojem mnenju bi se dalo. Razvozljali so tudi hieroglife in klinopis.


So ja. Sam tam še zmeraj ni bila dodatne "zanke", da bi bilo "besedilo" povrhu vsega (neznana pisava in jezik) še dodatno šifrirano.

Pri mojem predlogu moramo razrešiti po vrstnem redu naslednje probleme

1. Znake (karšnekoli že) prepoznati kot črke, zloge ali kaj podobnega.
2. besede, ki so sestavljene iz takšnih znakov, - prepoznati njih pomen.
3. No, in ko imaš vse to, si šele pred začetkom problema, dešifriranja nekega sporočila.

Huuu, dolga bi bila, da se to razreši. Po moje bi blo že prej konc vojne, kot pa bi bila zadeva dešifrirana.

kekz ::

Vseeno pa ima tako šifriranje vsaj dve šibki točki.
1. vsako človeško besedilo, NE GLEDE NA JEZIK, ima neko frekvenčno razporeditev besed (ne črk), ki ni naključno. Drugače povedano, nekatere besede so veliko pogosteje uporabljene kot druge.
2. Tvoje šifriranje vsaj približno ohranja pozicijsko odvisnost. To pomeni, da bo druga beseda šifriranega besedila (vsaj približno) tudi druga beseda originalnega besedila.

Sodobni šifrirni postopki razpršijo preslikavo med originalnimi in šifriranimi podatki. V praksi sicer samo znotraj bloka, ki je ponavadi fiksne dolžine. Pomeni, da sosednja originalna podatka ne bosta sosednja šifrirana podatka. Kljub temu, da to v osnovi velja samo znotraj bloka, pa se vseeno to prenaša tudi naprej, ker se šifrira verižno. To pomeni, da se šifrini ključ združi (npr XOR) s prejšnjim blokom šifriranih podatkov. Pomeni, če se premeni prvi odstavek nekega besedila, se bo zato spremenilo celotno šifrirano besedilo. (to je označeno pri šifrirnem postopku s kratico CBC - cipher block chaining, = samo ena, najbolj pogosta, od možnosti).

Da je vse skupaj še težje: če poizkusimo šifrirati isto besedilo večkrat z istim ključem, dobimo vsakokrat različen rezultat. Kako se to doseže? Tako da se pred šifriranjem v originalne podatke doda en blok NAKLJUČNIH podatkov, ki se ga po uspešnem odšifriranju odstrani.

Še zanimivost.
V včerajšnji epizodi Stargate na kanalu A je prevajalec cipher prevajal kot cifra :D (abrveznik!)

imagodei ::

hieroglife so dešifrirali s pomočjo teksta v grščini, ki so ga razumeli. Rosseta stone
- Hoc est qui sumus -

Barakuda1 ::

Da je vse skupaj še težje: če poizkusimo šifrirati isto besedilo večkrat z istim ključem, dobimo vsakokrat različen rezultat.


Super. In?
Tolk boljš za to, kar pravim.
Če boš 100 x dobil drugačen rezultat, tebi povsem neznanih znakov, kaj boš imel od tega?

Primer, ampak res samo primer.

Vsak zlog je predstavljen le s kvadratkom različne barve. Tako imaš naprimer besedo (najbolj enostavno) nebo (ne-bo).
Ta je sestavljena iz rumenega kvadratka in zelenega. Imava torej pač pravokotnik rumeno-zelene barve, ki pa v nekem novem jeziku pomeni npr. "nilski konj" pri čemer pa "rumen kvadratek" sam po sebi tudi pod razno ne pomeni ne Nil, ne nilski ali karkoli od tega.

Celoten tekst bi bil tako le mozaik različnih barvnih kvadratkov, kjer ne bi vedel ne kje je ločilo, ne kje se beseda začne in ne kje konča (v kakšnem barvnem kvadratku). Povrhu vsega, pa bi sam tekst bil "napisan" v povsem novem, neznanem jeziku.

Če bi poznal vsaj znake (barve), kajšele kaj potem pomenijo v neki konstalaciji (besedi), bi bilo drugače. Tako pa ...

Saj ne rečem, da se enkrat nekomu ne bi posrečilo. Rekel sem le, da bi takrat, ko bi morda nekdo zadevo vendarle "prebral", bil tak podatek že zdavnej nekoristen.

Tear_DR0P ::

barakuda - to o čemer ti pišeš obstaja - piše tudi v knjigi šifer o tem - kaj je minojska B al nekaj takega - je že dolgo, kar sem bral to knjigo

če jezika sploh ne poznaš, je zajebano dešifrirat, še večji problem je če ima jezik povsem drugačen nabor spoznanj, zarad tega so japonci imeli tžave z dešifriranjem navaho jezika - gre za jezik, ki ga še nikoli nisi slišal/bral/sploh ne veš zanj - na koncu pa ljudje ki govorijo ta jezik še niso videli letala, letalonosilke ali podmornice in vse te reči zato poimenujejo z nečim iz svojega okolja, s katerim dešifrer spet nima stične točke - no sedaj pa dešifriraj :)

aja linearna A in B sta bili pisavi - bolje rečeno klinopisa, ki so jih staknili v nekih požganih kleteh in nato je nekdo uspel eno dešifrirat, ker je bila v bistvu malo cudna grscina
"Figures don't lie, but liars figure."
Samuel Clemens aka Mark Twain

jype ::

Američani so šifirali s pomočjo jezika plemena Navajo. Ker je jezik sintaktično in vokalno izjemno zapleten, se je reč obnesla (a je pomembno vedeti, da se danes, zaradi ogromne moči računalnikov, ista stvar nikakor ne bi).

Barakuda1 ::

zaradi ogromne moči računalnikov, ista stvar nikakor ne bi).


No, jaz sem še zmerja malce skeptičen.

Še tako močan računalnik, se pokaže kot (relativno) zelo slab prevajalec iz enega jezika v drugega. In to celo takrat, ko vemo iz katerega jezika v kateri jezik bomo prevajali.

Ko pa imaš pred sabo jezik, ki je povsem tuj in neznan, o katerem pojma nimaš kakšna je njegova slovnica niti njegov besedni zaklad, je pa to približno tako, kot da boš računalniku naročil, naj v angleški jezik prevede lajanje psa ali mjavkanje mačke.
Me prav zanima, kakšen rezultat bomo dobili?

jype ::

Ja, nisem mislil tega, da bi računalnik kar sam od sebe znal prevest ali dešifrirat.

Gre za to, da je kriptoanalitiku močan računalnik v izjemno pomoč - ne gre le za frekvenčne analize besedila in podobne trivialnosti, temveč tudi za vrsto precej obsežnejših operacij, ki lahko smisel izpeljejo (verjetnostno povežejo z dejstvi, pridobljenimi iz drugih virov) iz zelo širokega in šibko povezanega konteksta.

Tudi Navajo jezik ima strukturo, ki je dobro vidna in očitno prepoznavna, tako da je dešifriranje približno enako zapleteno kot pri drugih jezikih, razumevanje pa seveda precej bolj, ne pa nemogoče.

Pred časom sem gledal dokumentarec o angleškemu crackanju sporočil, šifriranih s strojem enigma (Schlusselmaschine E), kjer so mehanski računalniki računali permutacije, kriptoanalitik pa je z njihovo pomočjo razmeroma hitro dešifriral večino prejetih sporočil. Čeprav so bile določene črke napačne in so ponekod manjkale, je bilo sporočila iz njih razbrati trivialno.

Zgodovina sprememb…

  • spremenilo: jype ()

Kostko ::

@Barakuda1: To kar omenjaš je še vedno neke vrste navadna substitucija... sama po sebi je taka shema za resno uporabo neprimerna. Če zgeneriraš nek random IV (inicializacijski vektor - znan napadalcu, ki je tam zato da lahko večkrat uporabiš isti ključ, dobiš pa popolnoma različne ciphertexte), 256 bitni ključ in vržeš nek bit-cleartext čez recimo Rijndael, boš dobil dokaj random blok. Veliko bolj kot katerokoli opletanje z jeziki. Tudi 100x enkripcija ni potrebna in je v nekaterih primerih lahko celo nevarna...

Seveda lahko ti pod to vržeš še kode - v tvojem primeru nek izmišljeni jezik, ampak kje je smisel ? Moč algoritma se pokaže šele takrat, ko je edina neznanka privatni ključ, sam algoritem pa je popolnoma znan - v tvojem primeru pa se ključ skriva v algoritmu samem in je to samo security through obscurity. ;)
Human stupidity is not convergent, it has no limit!

Zgodovina sprememb…

  • spremenil: Kostko ()

Barakuda1 ::

Tudi Navajo jezik ima strukturo, ki je dobro vidna in očitno prepoznavna


A res?
Že pri slovenskem jeziku bi si krhal zobe, kajšele, če ga sploh ne bi poznal

Poskus tale tekst prebrat (izvorni tekst je od Tear_DR0P-a) Zadeva pa je "razbijana" po sistemu blokov in "zabeljena" z vrinjeno vsako 8 črko.
..............

Dikasploherobljemječ
Asojapronczizkkigaše
Judjeekigokalipodmol
Aoksoljaskddešifrhiraj
Zaradtpegnžikolinisjez
Igkšenitopoimoenuetoč
Kenoznepoznašfjorspoz
Naonaislišalbbetialaleta
Ezajebagnounimastinvtš
Eveičjipitfrerspeteimkaje
Zikatšerimdešplovsemdr
Umizsrvojegmmgačenna
Bnjejozpnečiiimelsitžaet
Erečinzavezdšešifrrnicei
Nvmsiratntjemnljonosilk
Eavahuojezisovhidelilkag
Vrezajevorifjotaralsplohc
Nakoncudpa levešzančjn




sedaj pa dešifriraj

.................


Če bi sedaj še vsaka črka bil nek nov znak, za katerega pojma ne bi imel kaj pomeni, se pa temu reče ...adijo pamet, pa četud maš zravn komp, da ti pomaga.


Sedaj pa si predstavljaj, da je cela zadeva napisana (izvorna) še v povsem neznanem in nerazumljivem jeziku.

No, kolk vojn (ali vsaj bitk) bo vmes že končanih, preden boš zadevo dešifriral.

Ja, sej že slišim ugovor, da je to nesmiselno, ker mora tudi prejemnik sporočila poznat ta tuj jezik in pisavo, kar pa v praksi skoraj ni možno.
Ja pa kaj. Kaj pa če nas nappdejo "mali zeleni" (vprašanje je čisto resno)

jype ::

Barakuda1> No, kolk vojn (ali vsaj bitk) bo vmes že končanih, preden boš zadevo dešifriral.

Uh, uh... Se bo pa treba malo bolj potrudit. Tvoj primer je trivialen, pa ne za računalnik.

Prebrat se res ne da lahkotno, kriptoanalitična zahtevnost dešifriranja pa je praktično enaka nič. Me pa hudo zmede presledek v zadnji vrsti :)

Barakuda1> Ja, sej že slišim ugovor, da je to nesmiselno, ker mora tudi prejemnik sporočila poznat ta tuj jezik in pisavo, kar pa v praksi skoraj ni možno.

Ne, to sploh ni problem, to se mora prejemnik pač naučiti. Problem je, da jezik mora biti smiseln (imeti sintaktična in strukturna pravila), če je naraven, sicer bi ga ne bi bilo mogoče uporabljati. Kriptoanaliza take šifre vedno razbija ravno z določanjem teh pravil, ki potem zmanjšajo možno število smiselnih sporočil, v idealnem primeru na tako malo, da jih lahko človek pregleda.

Nekaj povsem drugega je šifriranje na povsem matematični osnovi - tam lahko dejansko izračunaš možnosti, ki jih ima morebitni kriptoanalitik, da reč razbije (in ranljivosti večine sodobnih algoritmov izhajajo predvsem iz njihove posamezne specifične uporabe, ne pa njihove splošne oporečnosti).

Če šifriram stavek
Že pri slovenskem jeziku bi si krhal zobe.

z navadnim 512 bitnim RSA ključem:
Private-Key: (512 bit)
modulus:
00:9f:51:57:21:2d:d7:a7:fd:89:79:25:b9:c6:78:
d1:95:3a:74:a9:b1:e6:81:62:04:a7:ff:ed:4a:e4:
98:a9:61:85:7b:7d:be:2d:30:69:7a:eb:76:af:43:
fe:6c:fb:d1:a3:29:cc:6d:41:2f:1f:b6:50:a7:93:
b6:6a:43:20:a9
publicExponent: 65537 (0x10001)
privateExponent:
4e:88:38:eb:c8:fe:21:f7:cf:39:21:88:86:b5:ed:
91:a2:c3:f9:16:11:6a:bb:97:51:fc:cc:ca:7b:0e:
69:87:3a:82:02:79:8c:c8:ef:26:ff:f7:d2:74:4f:
d5:d4:46:83:b1:8e:8e:04:49:65:c1:e9:5c:10:db:
f1:3a:b0:51
prime1:
00:d3:db:82:72:44:35:46:bf:03:a6:a8:f1:00:85:
4d:e8:21:8d:87:be:df:5f:9e:78:9c:15:81:c4:59:
00:aa:15
prime2:
00:c0:83:5b:cb:d9:3d:39:eb:e9:37:75:9f:4f:62:
1e:94:5b:ac:e8:5f:56:34:b3:31:c7:31:7a:1c:d7:
cf:65:45
exponent1:
3e:fc:17:c0:18:ff:2d:d5:44:24:9c:3d:6a:46:37:
6f:37:ea:77:dd:0b:53:c6:2d:5d:5a:17:86:64:5f:
8a:31
exponent2:
00:92:a1:fb:43:93:9e:5d:05:e1:c7:8a:61:e3:d7:
3a:af:89:fc:73:aa:5a:41:1d:d4:66:82:bb:1e:49:
0b:01:79
coefficient:
08:6c:05:48:ac:4f:0f:cc:90:3d:20:54:2d:7c:b9:
dc:22:d6:c8:6c:ff:3e:8a:44:7c:79:e8:9e:25:72:
34:75

iz stavka dobim

0000 - 71 9e cc e6 a4 8e 60 67-51 3b 67 cf 8e b9 58 74 q.....`gQ;g...Xt
0010 - 39 4d 22 1c 8b 2f e5 79-c1 56 ca 5b 20 d8 05 48 9M"../.y.V.[ ..H
0020 - 0c 1f b3 19 12 a5 11 11-bb a1 21 25 a0 51 f1 d8 ..........!%.Q..
0030 - c9 88 bb 66 1d e0 27 d4-cc d6 bf b5 03 00 8e 2c ...f..'........,

Če zamenjam samo piko na koncu stavka v vejico, pa dobim popolnoma drugačen blok podatkov.

0000 - 04 5b 74 ce b1 bf ad 9f-f1 60 05 4f 79 56 70 1a .[t......`.OyVp.
0010 - e0 01 a4 bb 8c 48 9f 5f-e4 35 29 d2 0e c5 47 77 .....H._.5)...Gw
0020 - 77 31 28 ec f9 e7 d9 c2-9c 9b a4 dc bd 00 be 3e w1(............>
0030 - 53 fb e6 70 37 d2 5b c4-ef 20 91 19 96 d4 a5 74 S..p7.[.. .....t


To pa _je_ težko. V bistvu dovolj težko, da je ob poznavanju _vseh_ parametrov razen zasebnega dela ključa sporočilo za vse praktične pomene besede nemogoče prebrati, ne da bi sami zgenerirali ekvivalenten zasebni ključ (pri 512 bitih in miljardo poskusov na sekundo bi ključ našli povprečno v 212 579 400 208 374 510 076 960 061 488 550 325 461 050 320 595 389 291 250 056 466 319 789 510 877 624 730 098 964 267 791 839 539 378 647 131 186 366 153 774 317 508 289 129 036 180 letih, če bi poizkušali povsem na slepo (pri RSA ključih se da razmeroma močno zožati kandidate zavoljo sodobnih kriptoanalitičnih raziskav, pa tudi sodobni računalniki zmorejo precej več kot miljardo preizkusov na sekundo, tako da je ocena nekaj deset let precej ustreznejša - hecno, da ravno zaradi moči računalnikov).

TESKAn ::

Zakaj bi moral biti šifrirni jezik nujno naraven jezik? Če ga narediš posebej za šifriranje in se izogneš uporabi 'standardnih' pravil, potem pa za šifriranje in dešifriranje uporabiš računalnik. Zakaj bi v enem primeru bil računalnik dovoljen, v drugem pa prepovedan?
Uf! Uf! Je rekel Vinetou in se skril za skalo,
ki jo je prav v ta namen nosil s seboj.

barbarpapa1 ::

Pozdrav

S kriptografijo se ne ukvarjam, me pa malo zadeva zanima. Zanima me, kaj se zgodi, če sporočilo davkrat šifriramo? Pri tem mislim tole, da spustimo sporočilo najprej skozi šifrirni algoritem z enim ključem, tako dobljeno šifro pa še enkrat šifriramo, tokrat z drugim ključem. Kako je z dešifracijo takšnih šifer? Po občutku bi rekel, da je zadeva zelo težka, saj je rezulttat prve dešifracije še vedno šifra. In kako veš, da je le-ta pravilna?

LP

Jože

jype ::

TESKAn> Zakaj bi v enem primeru bil računalnik dovoljen, v drugem pa prepovedan?

Ni prepovedan, le bistveno manj uporaben je - vrste kriptoanalitičnih prijemov se ne moreš poslužiti (no, se jih lahko, a ne dajo nobenega uporabnega rezultata).

Vendar je tak jezik izrazito težak za uporabo in je skoraj nujno uporabljati računalnik (ali vsaj nekakšne tablice), da lahko razumemo vsebino.

kekz ::

Seveda lahko ti pod to vržeš še kode - v tvojem primeru nek izmišljeni jezik, ampak kje je smisel ? Moč algoritma se pokaže šele takrat, ko je edina neznanka privatni ključ, sam algoritem pa je popolnoma znan - v tvojem primeru pa se ključ skriva v algoritmu samem in je to samo security through obscurity. ;)

Saj, v čem je čar, da za šifriranje uporabljamo vsem znane algoritme in ne nekaj skrivnostnega?
Ravno v tem! Ogromna množica strokovnjakov raziskuje in analizira šibkosti algoritmov in je zato večja verjetnost, da je algoritem res dober. Pri skrivnostnih algoritmih bi bili prepričani, da je super, v resnici pa bi lahko imel veliko varnostno luknjo, ki smo jo spregledali.

kekz ::

Zanima me, kaj se zgodi, če sporočilo davkrat šifriramo?

To se v praksi ne uporablja, ker ima zadeva teoretično šibkost. Glej google: Meet-in-the-middle attack
To sicer ne pomeni, da je zadeva slabša kot enkratno šifriranje, le nič kaj pretirano boljša ni.

V praksi se zato uporablja 3x in ne 2x šifriranje (npr. 3DES). Slaba stran je počasnost (zahtevnost) postopka in ravno zato so uvedli AES (Rijndael).
AES kljub sodobnosti v resnici pri primerljivi dolžini ključa ni nič bolj varen od 3DES, samo veliko hitrejši je.

Kostko ::

Saj, v čem je čar, da za šifriranje uporabljamo vsem znane algoritme in ne nekaj skrivnostnega?

Hja če so algoritmi javno znani, potem so veliko bolj stestirani in se njihove pomanjkljivosti prej odkrije ;) Je pa res da ima NSA kar nekaj privatnih algoritmov - samo oni si s toliko kriptoanalitiki & co. to (analizo in testiranje) verjetno lahko privoščijo...

Edit: sem spregledal nadaljni kekzov tekst, tko da je tole mal redundant :8)
Human stupidity is not convergent, it has no limit!

Zgodovina sprememb…

  • spremenil: Kostko ()

Barakuda1 ::

Uh, uh... Se bo pa treba malo bolj potrudit. Tvoj primer je trivialen, pa ne za računalnik


Vidim, da se nismo razumeli.
Jasno, da je tisti tekst za dešifriranje "mala malca".

A vzamimo enako vsebino, zapisano v neznanem jeziku in z neznanimi simboli za črke.

A trdiš, da bo zadeva še zmeraj "mala malca"?

jype ::

Barakuda1> A trdiš, da bo zadeva še zmeraj "mala malca"?

Nikakor ne - bo pa pri razvozlavanju šifre in prevajanju zelo pomagal močan računalnik.

Barakuda1 ::

bo pa pri razvozlavanju šifre in prevajanju zelo pomagal močan računalnik.


Da bi računalnik lahko sploh karkoli prevedel (govorimo namreč o neznanem jeziku in neznani pisavi) mora imet sploh možnost primerjave.

S čim pa naj primerja beso "đamfule" in na kateri podlagi bo "pokapiral", da so đamfule "rumene marjetice", pod pogojem seveda, da najprej sploh nko novo pisavo prebere in prevede v nam znano pisavo (abecedo - črke)

Da niso našli primerjalnega teksta za hiroglife (Egipčanske) bi še dons vrjetno sam bulili v tiste "slikce" in sanjali o tem, kaj na stenah piše.

rasta ::

Nočeš videt, kar so ti že zgoraj napisali.
Prvič, ker je tvoj kriptirni algoritem skrit, ti to lahko daje lažen občutek varnosti.

Pa ta tvoj algoritem bo tudi podobna sporočila kriptiral podobno - recimo vprašanje in odgovor - vsebuje iste besede (na besede pa besedilo razlomiš s frekvenčno analizo pogostosti istoležečih znakov), ki so point teme.

Pričakuješ lahko tudi, da ima napadalec tudi bazo znanja o tebi in kaj bi si lahko sporočal - tako da tudi besedo "đamfule" hitro poveže v kaj smiselnega (ker če tega nimaš, že o navadnem angleškem stavku nimaš pojma, kaj bi to pomenilo in kako si to lahko razlagaš).

Saj ne, da bi bila dekripcija trivialna. Ampak "povsem drugačen" jezik je težko sestavljeno in ima preveč slabosti proti današnjim kriptirnim algoritmom na matematični osnovi.


Pa verjemi, da celotnih Egipčanskih hieroglifov niso razbili samo na podlagi enega kamna, ker itak ni bil to slovar + slovnica v dveh jezikih (se pravi popolen ključ). Bil pa je tisti prvo vodilo, kako se zadeve lotit.
Pa to je bilo v 19. stoletju, ko je bila kriptografija še v povojih, močnega orodja - računalnika - pa sploh še ni bilo.

antonija ::

Rosseta Stone je bil prvi od kamnov kjer je bil zapisan _isti_ text v treh pisavah/jezikih. Pred tem so bili hieroglifi lepe slikice. Za njih so nasli vec kamnov kjer je bil zapisan isti text v hieroglifih in se eni pisavi, navadno grski (arabci v egiptu zgleda niso prevec maral pisanja).

@Barakuda: ce ze hoces zajeban jezik za sifriranje si poglej kako se napise besede v arabscini: "Pisi kao sto govoris Extreeme Edition ™". Izgovoris besedo, izberes znake ki se slisijo "priblizno podobno" in zadevo napises. Tisti ki bo pa bral nej se pa j3&3 kaj je bilo v originalu napisano. Potem pa celo zadevo se zasifriras (lahko tud 10x ce mas dost casa), dodas zlicico Vegete in Hey Presto!! Koda ki jo verjetno pri stricu grmu razvozlavajo vsak dan. Veckrat.

Zdej pa tud ce nardis nov jezih in v njega vkljucis najbolj random principe iz vseh drugih jezikov, pa namesto pisave uporabis slikice, znake, stevilke, whatever... Bo ta tvoj novi super-duper jezik se vedno moral imet dovolj pravil da bo prejemnik lahko razvozlal kaj notri pise. Ce teh pravil ne bo potem ne bo nihce (razen avtorja) vedel kaj sploh pise, sifriranje gor-al-dol.
Statistically 3 out of 4 involved usually enjoy gang-bang experience.

Barakuda1 ::

Ce teh pravil ne bo potem ne bo nihce (razen avtorja) vedel kaj sploh pise, sifriranje gor-al-dol.


Govorim o tem, da tako jezik, pisavo in slovnična pravila, poznata samo pisec in prejemnik.

Sem skoraj prepričan, da se vsi razpoložljivi računalniki, lahko "slikajo", že brez da takšen tekst šifriram, kajšele, da ga dodatno šifriram.

Sicer je pa tako. Da živali med sabo komunicirajo (neke vrste "jezik" torej) ni več nobena skrivnost.
No, pa mi povej, o čem se mačke pogovarjajo med sabo, preden gredo miši lovit.

rasta ::

Sem skoraj prepričan, da se vsi razpoložljivi računalniki, lahko "slikajo", že brez da takšen tekst šifriram, kajšele, da ga dodatno šifriram.


Frekvenčna analiza je tisto pravo kladivo za vsak jezik. Imeti je potreben le dovolj vzorcev, pa se slej ko prej najdejo "mehkosti" (višja frekvenca pojavljanja določenih zaporedij).


No, pa mi povej, o čem se mačke pogovarjajo med sabo, preden gredo miši lovit.


Tu ti manjka znanje konteksta. Ker niti približno ne veš, kako mačke razmišljajo.
Niso problem tudi živali. Kako veš, kaj je mislil Nostradamus? Pisal je v čisto enostavno razumljivi francoščini, pa je danes ene 1000 interpretacij.

Ampak problem kriptografskega algoritma je, da mora biti uporaben tudi za ekstremne razmere: recimo, da se kaj zagušti glede Tajvana. Na terenu imaš kup vojakov, ki na veliko komunicirajo med sabo o čisto vsakdanjih rečeh (racimo stanju zalog ipd.), hkrati pa nočeš, da bi sovražnik vedel, kakšna navodila in pooblastila si ti dal enotam na terenu.
No zadaj pa imaš tako velesilo, kot je Kitajska, ki zbere na stotine odličnih strokovnajakov po svojih univerzah in inštitutih, ne samo kriptografe, ampak tudi strokovnjake za slovnice, fonologijo ipd. Če rabijo najboljši superračunalnik na svetu, ga bodo zgradili. Enako tudi uporaba cele nuklearke za to ne bi bil problem.
Kot drugo pa imajo velikansko zbirko kriptiranih sporočil, za številne lahko uganejo, kakšna je vsebina (tudi na podlagi tega, kaj se je že zgodilo).
In tu je vitalno, da enkrat ne prestrežejo ene sporočila, iz katerega lahko izberejo smisel, da ne boš šel v spopad, ker nimaš sredstev.
In še je podobnih primerov. To pa je najtrši oreh kriptografije.

Pa nekateri ljudje nezavedno kriptirajo, tako da nihče ne more razbrati kaj so mislili. Tudi na Slo-Tech forumu.


Potem je tu še razbitje "jezika", ki si ga ni izmislil človek - DNK. Pa jo kar lepo razbirajo. Če bila sili bi šlo vse pa še 100 hitreje.

Thomas ::

"The magic words are squeamish ossifrage."

To je bilo zakriptirano z "rho algoritmom" in hkrati je avtor Ron Rivest napovedal, da bo zadeva dešifrirana v "40 quadrillion years". Skoraj toliko prej kot je napovedal, so zadevo dešifrirali. Vsega par let kasneje.


Kaj je to "squeamish ossifrage"?
Man muss immer generalisieren - Carl Jacobi

lymph ::

Thomas počekiraj wikipedijo.

Za nagrado so pa dobili nepredstavljivih 100 dolarjev :D
"Belief is immune to counter example."

Thomas ::

Moje vprašanje je bilo retorično. Zašifrirano je bilo nekaj "nesmiselnega".
Man muss immer generalisieren - Carl Jacobi

lymph ::

Kako pa so potem vedeli, da so stvar pravilno dekodirali?

Če recimo za analogijo vzamemo primer, kjer bi za kodirno tehniko preprosto zamenjali pomen besed, po nekem samo nam znanim ključu, kako bi potem ta, ki stvar poskusi dekodirati, vedel kdaj je našel pravi ključ (v primeru, če smo kodirali nek zgornjemu podoben nesmisel).
"Belief is immune to counter example."

Zgodovina sprememb…

  • spremenil: lymph ()

Thomas ::

Sej v tem je čar. Včasih lahko odkodirajo tudi nesmisel. Popolnoma random niz, celo. Sestavijo puzzle, četudi je slika samo white noise, zakodiran.

Ampak v tem primeru je prvi del stavka nekako garantiral, da je prav tudi drugi del, čeprav zelo čuden.

Odkodiranje pomeni translacijo v niz znakov, ne nujno "razbiranja pomena".
Man muss immer generalisieren - Carl Jacobi

kekz ::

Tale pravilnost odkodiranja je trivialna. Gre namreč za RSA šifriranje, ki je asimetrično.
Šifrira se torej z javnim ključem, odšifrira pa s privatnim.

Za reševanje so torej imeli na voljo javni ključ in zašifriran tekst.
Tekst, za katerega so ugotovili, da je odšifrirana rešitev, so enostavno lahko ponovno zašifrirali z znanim javnim ključem in morali so dobiti enak zašifriran rezultat. Mislim da RSA nima kolizije (bijektivna preslikava).

Za popolno rešitev problema pa ni dovolj, da najdemo originalni tekst. Spodobilo bi se ugotoviti tudi privatni ključ.

darkolord ::

Zakriptirat sporočila tako, da ga ni mogoče dekriptirat brez "ključa", sploh ni problem (one-time pad). Problem je, kako spravit ključ do naslovnika. Enako velja za nov jezik, ki si ga morebiti izmisliš

kekz ::

Problem je, kako spravit ključ do naslovnika.

Pri asimetričnih algoritmih (npr. RSA, ElGamal) to sploh ni problem. Naslovnik si zgenerira par ključev in javnega ponudi vsem na voljo. Težava pri tem je ena vrsta kraje identitete (man-in-the-middle).

Npr. Pepe si zgenerira par ključev in javnega ponudi javnosti. Ta javni ključ prestreže Miha, ki zgenerira svoj par in s svojim javnim nadomesti Pepetovega. Potem ti s tem zašifriraš sporočilo v dobri veri, da ga bo lahko razumel le Pepe (v resnici ga bo lahko samo Miha). Miha dešifrira sporočilo, ga prebere, potem ga zašifrira s pravim Pepetovim in ga posreduje dalje Pepetu. Oba končna sta prepričana, da je vse v redu.

Temu se izognemo s skupno centralno avtoriteto (CA), kateri vsi zaupajo in ta s svojim podpisom potrjuje in jamči pristnost javnih ključev.

Po drugi strani pa lastno zgenerirani ključi ali digitalna potrdila - certifikati (brez CA potrditve) v nasprotju s splošnim mišljenjem niso čisto nič manj varni, če si jih le naslovnika izmenjata tako, da sta lahko prepričana, da ta javni ključ pripada drugemu (lastna potrditev identitete). V resnici je to še bolj varno, saj ni potrebno zaupanje v tretjo centralno identiteto.
Primer: Jaz sem se včasih vedno spraševal, zakaj bi zaupal nekemu južno afriškemu izdajatelju certifikatov (=Thawte), izdajatelju Micki iz Ljubljane pa ne, čeprav jo poznam osebno.

Ampak pri vzpostavitvi TLS seje s Thawte certifikatom so browserji lepo tiho (ker imajo že od proizvajalca vgrajene), pri TLS seji z Mickinim certifikatom pa začivka, da morda ni vredna zaupanja. Raja pa itak ne ve, kaj je web of trust.

jype ::

kekz> Temu se izognemo s skupno centralno avtoriteto (CA), kateri vsi zaupajo in ta s svojim podpisom potrjuje in jamči pristnost javnih ključev.

A, ne ne, to pa ne bo držalo. Skupna centralna avtoriteta je ranljiva na man-in-the-middle (čeprav ni ravno middle) ravno toliko, kot... Kaj si storil z Alice in Bobom???

Temu se izognemo z razvijanjem mreže zaupanja, katere zanesljivost narašča eksponentno s številom povezav v njej. Vsak, ki želi izvajati man-in-the-middle napad, mora kompromitirati več kot polovico ključev tvojih direktnih podpisnikov oziroma še več ključev, če podpisniki niso prvega reda.

Seveda to zahteva precej več dela s strani udeležencev, po drugi strani pa je zaupanje potem bistveno težje ponarediti.

Edit: Je že kekz povedal, ampak sem skočil v luft še preden sem prišel do konca njegovega prispevka. Sorry :)

Zgodovina sprememb…

  • spremenilo: jype ()

Barakuda1 ::

Problem je, kako spravit ključ do naslovnika. Enako velja za nov jezik, ki si ga morebiti izmisliš


Je, al pa ni.

Če naslovnik tak jezik že obvlada, ni problem.
Naslovnik lahko tudi že ima ključ (ker se je na tovrstna sporočila že pripravil v naprej).

V takem primeru se seveda (po mojem prepričanju) lahko (z vsemi računalniki skup) sam slikate, ampak vsebine in pomena sporočila ne boste razvozlali, vsaj pravočasno ne.
V izrednih razmerah (vojni naprimer) pa odločajo minute ne pa meseci ali leta.

jype ::

Barakuda1> Naslovnik lahko tudi že ima ključ (ker se je na tovrstna sporočila že pripravil v naprej).

Tudi napadalec lahko ključ že ima in se je na tovrstna sporočila pripravil vnaprej. Največja prednost one-time pada je tudi njegova največja slabost - njegova velikost. Tudi njegova statičnost je šibka točka, ki preprečuje njegovo večkratno uporabo, kar pomeni, da se je treba prepogosto dogovarjati o njegovi vsebini, kar zopet veča tveganje.

Barakuda1> V izrednih razmerah (vojni naprimer) pa odločajo minute ne pa meseci ali leta.

Saj prav za to gre - vsako sporočilo, kriptirano z istim ključem, poveča tveganje (da bo tisti, ki prestreza komunikacijo, sposoben dešifrirati vsebino), vsako dogovarjanje o ključih in jezikih pa še toliko bolj. Večanje ključa tudi veča tveganje (da bo ključ poškodovan, da bo med izmenjavo prišel v napačne roke in tako dalje). Danes najbolj varni šifrirni algoritmi se opirajo na izmenjavo podatkov (ključev), s katerimi si morebitni napadalec ne more pomagati praktično nič, kljub temu da lahko prestreže celotno komunikacijo. Varna izmenjava ključev za "enkratno uporabo" je del sodobnih kriptografskih prijemov in brez nje že dolgo ni več varno komunicirati. Seveda one-time padov ne moremo pošiljati na ta način, lahko pa tako pošiljamo javne ključe asimetričnih algoritmov.

Zgodovina sprememb…

  • spremenilo: jype ()

kekz ::

Kaj si storil z Alice in Bobom???

Na tiste ima že Bruce Schneier © :D

Zgodovina sprememb…

  • spremenilo: kekz ()

poweroff ::

So ja. Sam tam še zmeraj ni bila dodatne "zanke", da bi bilo "besedilo" povrhu vsega (neznana pisava in jezik) še dodatno šifrirano.
Šifriranje obstaja cca. 4000 let. So namreč našli tudi šifrirane hieroglife. Ne vem pa, ali so jih uspeli razbiti ali ne.

Drugače pa je ameriška mornarica uporabljala za "šifrerje" pripadnike indijanskega plemena Navajo. Je pa res, kar pravi jype - namreč treba je vedeti, da se bi tudi ta jezik uporabljal za opis nekih znanih stvari. Poleg tega so vsi jeziki kulturno definirani. Če bi si res izmislil povsem nov jezik s povsem umetno (neodvisno od kulture) slovnično in siceršnjo strukturo, bi morda šlo. Ampak še vedno bi ta jezik bilo treba prevesti v obstoječ jezik in tuja je šibka točka.

Pred časom sem gledal dokumentarec o angleškemu crackanju sporočil, šifriranih s strojem enigma (Schlusselmaschine E), kjer so mehanski računalniki računali permutacije, kriptoanalitik pa je z njihovo pomočjo razmeroma hitro dešifriral večino prejetih sporočil. Čeprav so bile določene črke napačne in so ponekod manjkale, je bilo sporočila iz njih razbrati trivialno.
U, to bi si pa ogledal. Se lahko enkrat na IRCU zmeniva o podrobnostih?

Zanima me, kaj se zgodi, če sporočilo davkrat šifriramo?
Trikrat recimo: TripleDES. Varnost se pač poveča, ampak prav bistveno ne.

Sicer pa ne pozabit, da pri dešifriranju ne sodelujejo samo matematiki. NSA zaposluje matematike IN lingviste. Pa tudi na obveščevalno dejavnost ne pozabit.

V izrednih razmerah (vojni naprimer) pa odločajo minute ne pa meseci ali leta.
Jup, ampak ti moraš imeti vzpostavljeno infrastrukturo. In kaj če ti je sovražnik podtaknil vohuna, ki ve, kakšne jezike govorijo tvoji vojaki?

V bistvu je problem, da v tvojem primeru Barakuda, jezik predstavlja ključ. To pa je v nasprotju s Kerchoffsovim zakonom, oz. je tak sistem po tem zakonu ne-varen - namreč, ključa v obliki jezika ni lahko zamenjati.
sudo poweroff

lymph ::

Vsakemu navodilu priredimo VEČ naključnih besed in jih številčno sortiramo. Jih vstavimo v slovar, ki vsako naključno zgenerirano besedo uporablja samo enkrat in nikoli več.
Damo kopijo slovarja sprejemniku.

Pa vsakemu prirejamo celotno navodilo, ne pa vsake enoto posebej.

Kako pa to dešifrirajo?
"Belief is immune to counter example."

Thomas ::

> Kako pa to dešifrirajo?

Tega NE dešifrirajo.

To je takoimenovana ruska šifra in je niti teoretično ni možno razbiti. Razen, če ne uporablja maskirnih bitov iz iste strani po večkrat.

To napako so Rusi naredili. Čeprav so konstruktorji vedeli, jih operativci niso poslušali in so uporabljali že porabljene random nize večkrat. Tako so Američani lahko precej brali.
Man muss immer generalisieren - Carl Jacobi

Thomas ::

Vendar tole zdaj ni čislano in kakor ni košer. Postopek zmerjajo z "security by obscurity" in tiste ki ga uporabljajo imenujejo tepčki.

Mensezdi, da jih s tem hočejo odvrniti od uporabe tega (IMHO) superiornega postopka.

Ruska šifra je neprebojna, razen če ne pride nasprotnik do slovarja. Samo maš slovarjev poljubno. Vsak agent na terenu svojega, ti pa v centrali vse.

Tele RSA in podobne zadeve so brezveze, ruska šifra je carska. Neprebojna.
Man muss immer generalisieren - Carl Jacobi

jype ::

Thomas> Postopek zmerjajo z "security by obscurity" in tiste ki ga uporabljajo imenujejo tepčki.

No ja, morda sem in tja kakšen. Glavni problem ruske šifre je avtentikacija in varnost prenosa ključa - ruska šifra je zaradi svoje simetričnosti in posledične zahtevnosti varnega prenašanja ključev (ki so v bistvu one-time pad, ki določa ciklično permutacijo slovarja) razmeroma dovzetna za man-in-the-middle napad, zaradi česar se njen princip tudi ne uporablja v sodobnih kriptografskih sistemih.

poweroff ::

Hja, problem je ravno dostava slovarjev. Dejansko pa so Rusi (oz. Sovjeti) pri uporabi one time pad-a bili šlampasti in se jim je to maščevalo.

NSA je imela projekt Venona, ki se je ukvarjal s tem problemom - je opisan na njihovi spletni strani. Je pa prav neverjetno koliko računskih operacij so morali narediti, da so našli tistih nekaj sporočil, kjer so OTP ključ uporabili večkrat. Mislim, da je bilo takih sporočil okrog 2%.

Sicer pa ruska obsedenost z OTP kriptografijo dokazuje, da so se očitno na področju kriptografije le nekaj naučili iz prve svetovne vojne...
sudo poweroff

Thomas ::

Agentu daš en USB ključek, pa basta. Lahko varno pisari domov do 2100.
Man muss immer generalisieren - Carl Jacobi

jype ::

Ti skoraj tako rad špilaš pavliho, kot jaz.

Da agent, o katerem sovražnik ne sme nič vedeti, dobi ključek iz "centrale", ki je edina druga entiteta na svetu, ki ji ključ sme biti poznan, mora ključ prestati precej zahtevno in nevarno pot.

Tu sicer pomaga kup drugih prijemov (steganografija ftw), ki pa ne prelisičijo odločne protiobveščevalne službe.

Omenjeni "algoritem" torej omogoča varno šifriranje le v bistveno težje izpolnjivih pogojih, kot na primer AES.

dejanrus ::

Ali pa pošlješ ključek s pomočjo kvantne kriptografije. tako odpadejo vsi NSA-ji, v najslabšem primeru ti ga lahko le pokvarjo.
«
1
2


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Rusija bo blokirala Telegram

Oddelek: Novice / Zasebnost
96308 (5073) AštiriL
»

Kako razvozlati šifro ?!

Oddelek: Loža
172656 (2068) Smrekar1
»

Članek NSA o reševanju Enigme

Oddelek: Novice / Zasebnost
214970 (3365) poweroff
»

Varnost generatorjev naključnih števil

Oddelek: Novice / Varnost
486063 (6062) Thomas
»

šifrirano sprintano besedilo-dekoder

Oddelek: Programiranje
202276 (1950) JutriPS3

Več podobnih tem