Jump to content
php.lv forumi

md5...


sviesc

Recommended Posts

bet ja cilveeks dabuu to DB un ja redz ka tas ira md5,

1) kaa tad vinsh var zinaat cik reizes jams ir gaajis caur md5

2) vinjam varbuut nav nemazaakas nojausmas, ka tas string ir izgaajis veel cari sha1 & base64 & veel haadam kashotaajam

3) vinjam nav ne jausmas ka parolei ir pielikti klaat veel kaut kaadi simboli

4) ja DB ieliek savu md5 hashu, tad datiem taa pat netiek klaat, jo hash ir ticis hashots un hashots

Ja tiek klāt DB, kādēļ tu domā, ka netiek klāt aplikācijai (programmai/skriptam), kas izmanto šo DB?

Savukārt, ja tu jau kā lietotājs vadi iekšā pieckārt nohashotu paroli, tad tas ir "overkill".

Link to comment
Share on other sites

  • Replies 40
  • Created
  • Last Reply

Top Posters In This Topic

h(h(x)) izrēķināt aizņem tikpat ilgi kā izrēķināt h(x) un h(y)

 

nav teikts. piemeeram: h =(x) x XOR 1231243, h(h(x)) = x

 

Tātad, ja mēs k reizes pēc kārtas pielietojam hash funkciju, tad atslēgu meklēšana arī palēninās k reizes. Tātad (ja mani aprēķini ir pareizi) atslēgas garums (atrašanas pēc pilnās pārlases nozīmē) palielinās par "logaritmu no k pie bāzes 2" bitiem.

 

pilnās pārlases laiks patiešām md5 gadījumā ir milzīgs, bet atkārtota hashošana neko nedos. tad labāk pievienot plaintekstam kautkādu stringu. y = md5(x+'secret key')

 

kapēc 2x md5 ir sliktāks?

 

tapēc, ka katru reizi tiek zaudēta informācija. pirmajā reizē no nezincik liela bitu daudzuma tiek radīts 128 bitus garš digests. un katru reizi samazinās unikālo hashu skaits. vietu datubāzē tas aizņem: 2 ** 128 * 16 / (1024 *1024) == 5192296858534827628530496329220096 Mb, tā ka pilnā pārlase ir nereāla.

 

Bet ja parole ir no mazajiem burtiem un cipariem un 6 simbolus gara, tad pilno pārlasi veikt ir reāli.

Edited by Smejmoon
Link to comment
Share on other sites

nav teikts. piemeeram: h =(x) x XOR 1231243, h(h(x)) = x

Paga, paga nejauksim hash funkcijas ar citām funkcijām. (-;

kapēc 2x md5 ir sliktāks?

 

tapēc, ka katru reizi tiek zaudēta informācija. pirmajā reizē no nezincik liela bitu daudzuma tiek radīts 128 bitus garš digests. un katru reizi samazinās unikālo hashu skaits.

Tavs apgalvojums būtībā ir:

Ja ar h(x)~n mēs apzīmējam "funkcija h tiek pielietota n reizes", tad lim(n->bezgalību)(h(x)~n) konverģē uz kādu konkrētu vērtibu. Pareizāk sakot, uz tādu maza (attiecībā pret visu iespējamo vērtību apgabala apjomu) apjoma visas funkcijas vērtību apgabala apakškopu, kura ir noslēgta attiecībā uz funkciju h, jeb veido ciklu ar (relatīvi) mazu garumu. Tas ir ļoti spēcīgs apgalvojums attiecībā uz samērā labi izpētitu kriptogrāfiski drošu hash funkciju.

Protams, pielietojot h(x) pietiekami daudz reizes, vērtibas sāks atkārtoties (jo vērtību apgabals, kā pareizi norādīji ir galīgs), un tātad veidosies cikls - jautājums ir cits: kāds ir šī cikla garums? Ja cikla garums tuvojas 2^128, tad es teiktu, ka vairākkārt pielietojot hash funkciju nav ko īpaši uztraukties.

 

Problēmu (kaut ari pagaidām teorētisku) es redzu apstāklī, ka izmantojot konstrukciju h(x)~n visi izmanto vienu un to pašu ciklu. Iespējams, ka pievienojot papildus vērtību, teiksim c rēķinot h(c * x), kur c katru reizi tiek "apvienots" iepriekšējās iterācijas rezultātu, mēs iegūtu jaunu ciklu, kurš ari būtu pietiekoši garš.

 

Patiesībā šis jautājums nav tik vienkāršs, kā liekas sākumā.

Link to comment
Share on other sites

Paga, paga nejauksim hash funkcijas ar citām funkcijām. (-;

:)

 

Tavs apgalvojums būtībā ir:

Ja ar h(x)~n mēs apzīmējam "funkcija h tiek pielietota n reizes", tad lim(n->bezgalību)(h(x)~n) konverģē uz kādu konkrētu vērtibu. Pareizāk sakot, uz tādu maza (attiecībā pret visu iespējamo vērtību apgabala apjomu) apjoma visas funkcijas vērtību apgabala apakškopu, kura ir noslēgta attiecībā uz funkciju h, jeb veido ciklu ar (relatīvi) mazu garumu. Tas ir ļoti spēcīgs apgalvojums attiecībā uz samērā labi izpētitu kriptogrāfiski drošu hash funkciju.

Protams, pielietojot h(x) pietiekami daudz reizes, vērtibas sāks atkārtoties (jo vērtību apgabals, kā pareizi norādīji ir galīgs), un tātad veidosies cikls - jautājums ir cits: kāds ir šī cikla garums? Ja cikla garums tuvojas 2^128, tad es teiktu, ka vairākkārt pielietojot hash funkciju nav ko īpaši uztraukties.

 

Piekrītu, ka nav vērts uztraukties. Man tikai uznāca izglītošanas tieksmes.

 

 

Reku 1996 gada papīrs no RSA. Pirmās 6 lpp ir par MD5. Kautkad nesen bija viens labāks uzbrukums.

 

Therefore we suggest that in the future MD5 should

no longer be implemented in applications like signature

schemes, where a collision-resistant hash function

is required. According to our present knowledge,

the best recommendations for alternatives to

MD5 are SHA-1 and RIPEMD-160.

 

ftp://ftp.rsasecurity.com/pub/cryptobytes/crypto2n2.pdf

Link to comment
Share on other sites

Jā, MD5 pie iespējas vajadzētu aizstāt ar citām hash funkcijām.

Starp citu boot.lv forumā ari par šito esmu runājis (-; Varbut interesē :D

http://www.boot.lv/forums/viewtopic.php?t=10050

 

Bet jebkurā gadījumā, jautājums par to, kā mainās cikla garums hash funkcijai atkarībā no ievaddatiem, ir ļoti interesants. (-;

Link to comment
Share on other sites

Jā, MD5 pie iespējas vajadzētu aizstāt ar citām hash funkcijām.

Starp citu boot.lv forumā ari par šito esmu runājis (-; Varbut interesē :D

http://www.boot.lv/forums/viewtopic.php?t=10050

 

12658[/snapback]

 

Heh. Izskatās uz maniem pseidopedagoģiskajiem centieniem ir atsaucies tikai cilvēks, kurš pats jau to zin. :) Vai Tev, Aleksej, ir arī kāds blogs ar rss, jo boot.lv un php.lv forumiem nesekoju? Vai vienkārši rss?

 

Bet jebkurā gadījumā, jautājums par to, kā mainās cikla garums hash funkcijai atkarībā no ievaddatiem, ir ļoti interesants. (-;

12658[/snapback]

 

Es vakars paskatījos kas notiek ar ja md5 pielieto uz 1000000 randomā uzģenerētiem 6simbolus gariem stringiem (25**6). Novirzes randomā parādījās(998391 dažādi pleinteksti), bet md5 hash katram bija savadāks. (nu bet salīdzinot 16 baitus ar sešiem, tā arī varētu būt).

 

Bet es nonācu pie secinājuma, ka 6 simbolu garas paroles varētu kost vaļā mājas apstākļos.

 

 

ko sauc par pirmtēlu?

kā latviski sauc plaintext?

Link to comment
Share on other sites

Vai Tev, Aleksej, ir arī kāds blogs ar rss, jo boot.lv un php.lv forumiem nesekoju? Vai vienkārši rss?
Nē, pagaidām nav. (-; Bet es domāju atsākt šīs apjomīgās vārdnīcas tulkošanu uz latviešu valodu.
Es vakars paskatījos kas notiek ar ja md5 pielieto uz 1000000 randomā uzģenerētiem 6simbolus gariem stringiem (25**6). Novirzes randomā parādījās(998391 dažādi pleinteksti), bet md5 hash katram bija savadāks. (nu bet salīdzinot 16 baitus ar sešiem, tā arī varētu būt).

 

Bet es nonācu pie secinājuma, ka 6 simbolu garas paroles varētu kost vaļā mājas apstākļos.

Pag, nesapratu. Vai tas nozīmē, ka Tu atradi kolīziju? Tādus x un y, ka h(x)=h(y)? Pastāsti vairāk par savu eksperimentu. (-;

ko sauc par pirmtēlu?

kā latviski sauc plaintext?

12662[/snapback]

Pirmtēls:

Ja y=h(x), tad iksu sauc par igreka pirmtēlu.

 

Plaintext jeb cleartext:

Atvērtais teksts.

Link to comment
Share on other sites

Pag, nesapratu. Vai tas nozīmē, ka Tu atradi kolīziju? Tādus x un y, ka h(x)=h(y)? Pastāsti vairāk par savu eksperimentu. (-;

 

Nē, vienkārši no miljons sākotnējiem stringiem daži bija vienādi.

 

Tev kriptogrāfija ir darbs vai aizraušanās?

Link to comment
Share on other sites

  • 3 months later...

×
×
  • Create New...