PCPROG.3

26 Jul 1993 - 22 Apr 1994

Topics

  1. algoritmi (290)
  2. dizajn (19)
  3. ms.dos (270)
  4. windows (360)
  5. asembler (213)
  6. basic (10)
  7. jezici (148)
  8. pascal (878)
  9. cccc (554)
  10. cpp (195)
  11. clipper (1125)
  12. baze.podataka (232)
  13. razno (540)

Messages - algoritmi

algoritmi.1 nbatocanin,
Zna li neko tačan algoritam po kome se obrađuju tekući računi u bankama? Kada se računa datum realizacije čeka, kako se i kada računa kamata i te stvari.
algoritmi.2 nboskovic,
*> Zna li neko tačan algoritam po kome se obrađuju tekući *> računi u Koliko se meni čini tu nema nikakve zakonitosti :) već to rade kad im pristignu čekovi i kad stignu da ih ubace u terminale. (c) klap nikola
algoritmi.3 dejanr,
>> Koliko se meni čini tu nema nikakve zakonitosti :) već to >> rade kad im pristignu čekovi i kad stignu da ih ubace u >> terminale. Mislim da zakonitosti ima, ali ima i grešaka. Smatra se da je ček naplaćen onoga dana kada je STIGAO u banku, jer je tada banka (kao) dala pare. Dakle, nije bitno što se to proknjiži dan-dva (tri, četiri... ;) kasnije, bitan je datum dolaska čeka.
algoritmi.4 dsoskic,
> Smatra se da je ček naplaćen onoga dana kada je STIGAO u banku, > jer je tada banka (kao) dala pare. Dakle, nije bitno što se to > proknjiži dan-dva (tri, četiri... ;) kasnije, bitan je datum > dolaska čeka. Da li to važi za sve banke? "Valuta datum" je datum kad je stigao ček u banku ili negde drugde ili onaj što piše na čeku. Ako neko zna ovo 100% tačno da mi odgovori, može i u drugu temu, na pr. Extra (biznis). p.s. radi se o tužbi koju je pokrenulo jedno fizičko lice protiv banke...
algoritmi.5 dejanr,
>> Da li to važi za sve banke? "Valuta datum" je datum kad je >> stigao ček u banku ili negde drugde ili onaj što piše na čeku. Da, to je datum kada je stigao u banku, što je jednako datumu koji piše na čeku samo ako banka ima on-line obradu podataka i ako u ekspozituri unovčiš ček. "Beobanka" ima on-line obradu, i jedna je od retkih. U svim drugim situacijama datum stizanja čeka je neki dan posle datuma koji piše na njemu. Nekada (pre "neprijatelja" Ante Markovića) se računalo prema datumu obrade čeka, i onda je za vreme one velike inflacije krajem 1989 (onda smo mislili da je velika, sad vidimo da je mala-malecka ;>) bilo silnog nošenja para iz jedne banke u drugu i pokrivanja minusa. Posle su da bi to sprečili uveli pomenuti mehanizam. Ne znam kojim je to zakonom regulisano itd, ali znam da se tako radi u većim bankama, u Beobanci sigurno.
algoritmi.6 nbatocanin,
> Koliko se meni čini tu nema nikakve zakonitosti :) već to > rade kad im pristignu čekovi i kad stignu da ih ubace u > terminale. Meni više ljudi rekoše za Beobanku da je datum skidanja čeka sa računa datum na čeku, a ne datum realizacije, što je čista pljačka po meni ;((
algoritmi.7 nboskovic,
*> Meni više ljudi rekoše za Beobanku da je datum skidanja *> čeka sa računa datum na čeku, a ne datum realizacije, što *> je čista pljačka po meni ;(( Koliko mi se čini, na izvodima koji se dobijaju od banke piše datum obrade za svaki ček koji je na izvodu. S obzirom da imam tekući, nisam primetio da se datum obrade poklapa sa datumom izdavanja čeka, sem u slučaju kad sam uspevao da dignem keš u samoj beobanci, kada je ček odma obrađen. (c) klap nikola
algoritmi.8 snemcev,
>> Meni više ljudi rekoše za Beobanku da je datum skidanja čeka sa >> računa datum na čeku, a ne datum realizacije, što je čista pljačka po >> meni ;(( Ovo važi za sve banke. Tako ti retroaktivno mogu obračunati kamatu, ili je pak stornirati ako se pokaže da neka uplata nije bila proknjižena. Onaj datum obrade nema veze sa životom. To mu dođe čisto informativno. Verovatno su u pitanju stari obrasci, pa zbog vertikalne kompatibilnosti...
algoritmi.9 spantic,
> Meni više ljudi rekoše za Beobanku da je datum skidanja > čeka sa računa datum na čeku, a ne datum realizacije, što > je čista pljačka po meni ;(( To valjda važi za novac dignut u banci? A ne za one realizovane u trgovinama?
algoritmi.10 dejanr,
>> Koliko mi se čini, na izvodima koji se dobijaju od banke >> piše datum obrade za svaki ček koji je na izvodu. S obzirom >> da imam tekući, nisam primetio da se datum obrade poklapa >> sa datumom izdavanja čeka, sem u slučaju kad sam uspevao da >> dignem keš u samoj beobanci, kada je ček odma obrađen. I kod mene je isti slučaj. Vodi se neki "međudatum". To je dan kada je banka stvarno dala pare tj. kad joj je ček stigao.
algoritmi.11 dsoskic,
> imam tekući, nisam primetio da se datum obrade poklapa > sa datumom izdavanja čeka, sem u slučaju kad sam uspevao da Ne pamtim kad sam napisao datum, a sam realizovan ček nisam nikad ni video da bih mogao da uporedim. U svakom slučaju kad sam u kafani pitao kad su mi pustili ček oni su rekli za dva dana, na tekućem ga nije bilo oko 15-ak dana, kao šatro bio sam u plusu, međutim posle, u izvodu stvarno videh da su u pitanju samo dva dana tj. iz plusa od 15-ak dana vrate u pređašnje stanje pre realizacije čeka, pa ako nije bilo dovoljno para na tekućem oni te uteraju u minus i vode te u minusu sve da prve uplate i tako za svaki ček koji je bez pokrića (u tom trenutku) izdat. Naravski posle nema ni positivne kamate koju si dobijao u istom periodu, što i nije bitno.
algoritmi.12 broker,
> Meni više ljudi rekoše za Beobanku da je datum skidanja > čeka sa računa datum na čeku, a ne datum realizacije, što > je čista pljačka po meni ;(( Isto rade i u JIK banci.
algoritmi.13 nbatocanin,
>> Meni više ljudi rekoše za Beobanku da je datum skidanja >> čeka sa računa datum na čeku, a ne datum realizacije, što >> je čista pljačka po meni ;(( > > To valjda važi za novac dignut u banci? A ne za one > realizovane u trgovinama? Jok :( Pitao ja u Beobanci: 3 nezavisna uzorka službenica su mi rekla da se *uvek* računa datum na čeku.
algoritmi.14 dejanr,
>> Jok :( Pitao ja u Beobanci: 3 nezavisna uzorka službenica su mi rekla >> da se *uvek* računa datum na čeku. Vrlo čudno. Meni se N (a N je solidno veliki broj ;) puta desilo da napišem ček(ove) danas (za kupovinu u nekoj radnji) a da onda pare uplatim ne sutra, nego kroz 2-3 dana. I nikad mi nije knjiženo da sam u minusu (kuc, kuc...). Takođe znam neke koji su u dane žiralnog otkupa pisali čekove danas (i to ne velike sume, čak i za kupovinu nekog aparata itd), pa onda sutra nosili marke da prodaju kod Interplasta ili negde drugde, pa je opet bilo u redu.
algoritmi.15 nbatocanin,
> Vrlo čudno. Meni se N (a N je solidno veliki broj ;) puta > desilo da napišem ček(ove) danas (za kupovinu u nekoj > radnji) a da onda pare uplatim ne sutra, nego kroz 2-3 > dana. I nikad mi nije knjiženo da sam u minusu (kuc, > kuc...). Isti slučaj, do poslednjeg izvoda. Kazali su mi da ovaj sistem primenjuju od skora.
algoritmi.16 dejanr,
žini mi se da se i ovde povremeno pojavljivalo pitanje "šta su to regularni izrazi". Možda će nekima koje to zanima koristiti ova mala rasprava sa BIX-a, u povodu regularnih izraza na Archie-u ========== internet/telnet #156, from rcarta, 581 chars, Sat Aug 7 10:35:33 1993 Comment(s). ---------- TITLE: A note on regular expressions. In the course of learning to use archie servers, I found that the most powerful means of specifying the search string was via regular expressions. The manpage at archie.au contains an excellent reference on regular expressions. After reading this document, I did have one question, however. How does one specify the empty string (denoted by epsilon or lamda in most texts on the subject)? I sent mail to archie-admin@archie.au asking that question. His answer was that the empty string is generally specified by a pair of double quotes (""). ========== internet/telnet #158, from bbayer, 171 chars, Sat Aug 7 10:48:40 1993 Comment to 156. Comment(s). ---------- ok...for us unix illiterates.... what is a Regular Expression? (i've been waiting to ask that for the last couple of months, and finally found the appropriate context). ========== internet/telnet #159, from rcarta, 4351 chars, Sat Aug 7 12:23:34 1993 Comment to 158. Comment(s). ---------- Regular expressions are pretty neat, and they are a powerful thing, but it's hard to sum them up in one breath. (An good explanation of regular expressions can be obtained by telneting to archie.au, logging in as archie, and typing manpage at the archie.AU> prompt.) I was first introduced to regular expressions in an attempt to study compilers. Regular expressions are a definitional mechanism with which you can specify any collection of strings. They are used in the "scanner" section of a compiler to get valid tokens from a source file (for instance, in C, valid tokens are any C keyword, C operator, identifier, number, etc.). Since regular expressions denote a collection of strings, a sort of set notation is used. The operations are concatenation (this and that), alternation (this or that), positive closure (one or more of this), and Kleene closure (zero or more of this). Concatenation is implied, for instance ab means "a followed by b". Here are the most basic regular expressions and the strings they match: Expression Matches ------------------------------------- ab ab a|b a b a+ a aa aaa etc. a* (nothing) a aa aaa etc. One special case is the empty string, denoted by epsilon in most texts, or by lambda in others. On archie servers, it's denoted by "". Why would you want to use the empty string? An illustration: letting D stand for any digit, give a regular expression for a FORTRAN style floating-point literal. (A number with no decimal point, a number followed by a decimal point, a number with a decimal point in the middle, or a decimal point followed by a number. Examples are 5, 5., 5.5, .5, and 0.5.) (D+(""|.))|(D*.D+) This translates to "one or more digits followed by nothing or a decimal point, OR zero or more digits followed by a decimal point followed by one or more digits." In the above example, since D stands for all digits (range 0-9), D is called a character class. The archie server uses a bracket mechanism to specify character classes. [abc] means "one of a, b, or c". You can also put a range in brackets. [a-z] means "one of a, b, c, ..., or z." The above regular expression would be written as ([0-9]+(""|.))|([0-9]*.[0-9]+) for most archie servers. (It probably wouldn't find a match, though, because not many filenames are floating-point numbers.) (Note: To use regular expressions with an archie server, type "set search regex" at the archie server prompt.) A note on the use of regular expressions on an archie system: archie systems use the period (.) as a wildcard character ("match anything"). Therefore, the expression .* means "zero or more of anything." When you specify your search string, it is considered to have .* at the front and back. For instance, if I typed "find a", the system would interpret this as "find .*a.*", meaning "find anything, followed by an a, followed by anything." This means that *any* occurrence of my string, if found at the beginning, in the middle, or at the end of anything in the database, will match. There are two special characters, ^ and $, which modify this. "find ^cat" means "find anything beginning with cat, followed by zero or more occurrences of anything." Matches are cat, catx, catcc, etc. "find cat$" means "Find zero or more occurrences of anything, followed by cat". Matches are cat, acat, xxcat, but not catx. "find ^cat$" directs the archie system to find the string cat and nothing else. Note: Each symbol in a regular expression is case-sensitive. In a regular expression this may be overcome with character classes. For instance, [Mm] matches one of M or m. The string [Mm][Ss]-*[Dd][Oo][Ss] means "Find zero or more of anything, followed by M or m, followed by S or s, followed by zero or more -, etc." Matching strings are MSDOS, MSdos, MS-DOS, ms-dos, Ms--dOs, etc. I hope this helps. The concept of regular expressions is just one of those things that's simple once you understand it, but attaining the understanding can be real difficult. It was for me. ========== internet/telnet #160, from bbayer, 101 chars, Sat Aug 7 15:58:38 1993 Comment to 159. More refs to 159. ---------- argh! and i had to ask. OK! I'll download the above, print it out, and study. Thanks for the help. ========== internet/telnet #161, from paulr, 171 chars, Sat Aug 7 16:12:47 1993 Comment to 159. Comment(s). More refs to 159. ---------- That is a very nice explanation! I'm going to save that one. I may file the serial numbers off and make use of next time someone asks that question. :) :) -Paul ========== internet/telnet #163, from thefuzz, 2558 chars, Sat Aug 7 18:51:35 1993 Comment to 159. Comment(s). More refs to 159. ---------- To further the confusion, here is a portion of the GNU grep/egrep manual page. Archie, and most regular expression matchers use the "egrep" syntax: REGULAR EXPRESSIONS (grep) (egrep) (explanation) c c a single (non-meta) character matches itself. . . matches any single character except newline. \? ? postfix operator; preceeding item is optional. * * postfix operator; preceeding item 0 or more times. \+ + postfix operator; preceeding item 1 or more times. \| | infix operator; matches either argument. ^ ^ matches the empty string at the beginning of a line. $ $ matches the empty string at the end of a line. \< \< matches the empty string at the beginning of a word. \> \> matches the empty string at the end of a word. [chars] [chars] match any character in the given class; if the first character after [ is ^, match any character not in the given class; a range of charac- ters may be specified by first - last; for example, \W (below) is equivalent to the class [^A-Za-z0 - 9] \( \) ( ) parentheses are used to override operator precedence. \digit \digit \n matches a repeat of the text matched earlier in the regexp by the subexpression inside the nth opening parenthesis. \ \ any special character may be pre- ceded by a backslash to match it literally. Now to make life much easier for archie users, a simple string like "kermit" will match any string with the word kermit in it. So, from archie "prog kermit" is a valid search term. thefuzz ========== internet/telnet #164, from rcook, 70 chars, Sat Aug 7 19:27:41 1993 Comment to 159. Comment(s). ---------- >. . .hard to sum them up in one breath. Wildcards on steroids? --RC ========== internet/telnet #165, from rcarta, 325 chars, Sat Aug 7 23:48:49 1993 Comment to 163. ---------- In a not-so-special case as that, it's even better just to enter 'set search sub' before 'prog kermit'. That will search for 'kermit' as a case-insensitive substring (if case sensitivity is desired, use 'set search subcase'). In the event that you know *precisely* what you are looking for, you can use 'set search exact'.
algoritmi.17 ratman,
Kako bi izgledao program koji izracunava vrednost matrice preko minor-vrednosti. Taj pgm. svakako koristi rekurziju (dok ne stigne do 1x1 matrice), ali mi nekako ne polazi za rukom da ga napisem, jer mi rekurzivne stvari inace nekako ne polaze za rukom. Ako neko zna kako bi se ovo moglo uraditi, ili vec ima program neka mi uploaduje -najbolje u Pascal-u, a moze i u Clipper-u (doduse moze i u QBASICU -rekurzije i tu isto funkcionisu!) Evo sta sam ja napravio (ali ne radi!) (Naravno, i meni je samom vrlo zamlatno gledati sta nije u redu, al' ako se ipak desi da neko primeti...) DECLARE FUNCTION minor! (mat(), z!, y!) OPTION BASE 1 OPEN "i", 1, "matrix3" INPUT #1, n DIM m(n, n) FOR lin = 1 TO n FOR kol = 1 TO n INPUT #1, m(lin, kol) NEXT kol, lin rese = 0 PRINT minor!(m(), 1, 1) FUNCTION minor (mat(), re, ko) mdim = UBOUND(mat, 1) - LBOUND(mat, 1) + 1 IF mdim = 2 THEN minor = mat(1, 1) * mat(2, 2) - mat(2, 1) * mat(1, 2) ELSE sum = 0 DIM newm(mdim - 1, mdim - 1) FOR i = 1 TO mdim REDIM newm(mdim - 1, mdim - 1) kk = 1 FOR k = 1 TO mdim IF k = re THEN k = k + 1 jj = 1 FOR j = 1 TO mdim - 1 IF j = 1 THEN j = j + 1 newm(k - 1, jj) = mat(k, j) jj = jj + 1 NEXT j kk = kk + 1 NEXT k sum = sum + (-1) ^ (1 + i) * minor(newm(), 1, 1) NEXT i minor = sum END IF END FUNCTION Pozdrav, Dejan.
algoritmi.18 m.hristodulo,
>> Kako bi izgledao program koji izracunava vrednost >> matrice preko Evo ti jedne funkcije, sa primerom, koja izračunava vrednost determinante zadate matrice do 4x4 (školski zadatak, zato je ograničen). Malo debilno izgleda, ali radi. Ako me ne bude mrzelo, "ulepšaću" kod, pa ću ti baciti. determin.zip
algoritmi.19 ndragan,
/ p.s. radi se o tužbi koju je pokrenulo jedno fizičko lice protiv / banke... E najzad nekom da pukne film. Mnogo sreće i živaca mu želim. Elem, ja sam radio to za par banaka, i sistem je da se uzima datum valute, tj datum kada je ček prošao kroz banku. Drugo je pitanje šta u tom datumu piše. Imao sam primer još pre pet godina (ili kad mi je ono poslednji put Banatska banda... banka dostavila kamatni list), da je nekoliko čekova, koji su prema izvodu doobro kasnili, naknadno dobilo neke realnije datume. Verovatno se radilo o tome da su proknjiženi na zbirni konto (banke se izrazito trude da im zbirovi budu dnevno tačni), pa tek posle rasknjižavani po partijama, te da je na izvode stigao datum rasknjižavanja, a ne datum zbirnog knjiženja, ili neki drugi zez. Ne bih se čudio ni da su retroaktivno propustili prepravku datuma za neke serije čekova (kriterijumi su za gledanje u pasulj - koje čekove, kako su znali dokle da ih vrate itd). Princip je da se svaki put sve računa ispočetka - ako je nešto naknadno proknjiženo, pod nekim starijim datumom, to naknadno utiče i na kamatu i naravno obračunava se kamata prema najnovijem obračunu, skida se prethodno obračunata kamata i iskazuje se samo razlika. Tako sam i ja imao na svom tekućem nekakvu storno kaznenu kamatu (jedna plata je malo zalutala). Ono čega se ne drže sve banke je da je datum koji se pojavio na izvodu _zakon_, tj. jednom kad ga vlasnik računa vidi odštampanog, nepromenljiv je, osim ako vlasnik interveniše.
algoritmi.20 janko,
> Kako bi izgledao program koji izracunava vrednost matrice > preko minor-vrednosti. Taj pgm. svakako koristi rekurziju > (dok ne stigne do 1x1 matrice), ali mi nekako ne polazi za > rukom da ga napisem, jer mi rekurzivne stvari inace nekako > ne polaze za rukom. Nemoj ni da pišeš, ako ti je potrebna samo vrednost same determinante. Rekurzivno izračunavanje determinante je NAJSPORIJI i NAJDUčI način koji je meni poznat. Zgodan je samo za poneko matematičko dokazivanje, ali ne i za primenu.
algoritmi.23 drassa,
Alo? Ima li koga? Imam jedan problemčić, tačnije pitanjce... Evo ovako: Uz pomoć objtools i dobio sledeći rezultat OBJ fajla kompajlirane naredbe SHELL "kvakva": Filename : C:ĐRADNIĐOBJTOOLSĐSHELL.OBJ Module : C:ĐRADNIĐQSOURCEĐSHELL.BAS Language : Microsoft QuickBASIC Compiler 4.0 Library : BCOM40 Type : Sub module with starting address Externals: $AC $DAC B$CENP b$seg B$SSHL Da li postoji mogućnost da se Externals i Public vide sa pozivnim parametrima? Ako postoji, kako? Ako ne postoji, zašto? Bye, Drassa
algoritmi.24 drassa,
Još jedno pitanje: Kakva je razlika u strukturi OBJ naspram LIB ? Bye, Drassa
algoritmi.25 .obj,
> Kakva je razlika u strukturi OBJ naspram LIB ? Razlika je, sa jedne strane - mala, a sa druge strane - velika. ;))) Naime, možda ti je poznato da .obj ;) datoteke imaju vrlo jednostavnu strukturu: podeljene su u slogove ("records") - svaki od njih na početku ima identifikator tipa ;) sloga, dužinu istog, CRC istog i telo (tj. podatke) istog. Primer: Bajtovi (hex) Komentar ;) 80 Slog tipa THEADR - zaglavlje modula 05 00 Dužina sloga - 0005h bajtova 03 41 41 41 Telo sloga. Njegova struktura zavisi od tipa sloga. Kod THEADR, to je paskal-string - ime modula. 03 41 41 41 je string 'AAA'. 00 CRC sloga. Nula = bez kontrole. Sad, da vidimo pitanje - u čemu se ovakva ogranizacija razlikuje od organizacije lib datoteke? U ničemu. ;)) Skoro. Jer, postoje i dodatni tipovi slogova (u odnosu na obj), npr. LHEADR za zaglavlje biblioteke. Glavna razlika je, međutim, u tabeli koja se koristi za superbrzo pretraživanje biblioteke. Dobar linker će neki simbol XYZ vrlo brzo naći pomoću tabele koja, BTW, obično stoji na kraju lib datoteke (lseek offset stoji u zaglavlju lib-a, LHEADR). Eto. Nadam se da ti je sad malo jasnije kako izgledaje to objektne datoteke. Vrlo prosto. A ni lib-ovi nisu ništa komplikovanije. Ou bi džej
algoritmi.26 drassa,
>> Dobar linker će neki simbol XYZ vrlo brzo naći pomoću >> tabele koja, BTW, Hm, da sada je malo jasnije... Međutim, kako da .LIB ili .OBJ za koji nemam ng ili help, pregledam i vidim da li ima nešto interesantno i primenljivo? I kako da saznam koji parametri su potrebni za poziv nekog dela .LIB iz mog programa? Bye, drassa
algoritmi.27 furlani,
Hi:) Znam da ova poruka ne pribada ovoj grupi ali je procitajte mozda neko moze da mi pomogne. Trebaju mi scriptovi za TM . Zato sto ne znam da napravim ono kad nazovem bbs da me pita da li hocu da se logujem na peru ili ziku.Znaci kad se logujem dobijam pitanje:"Hocete da se logujete na:" "1.Peru" "2.Ziku" Ali pri tome ja da kucam samo za peru 1 a za ziku 2 znaci ako otkucam 1 logujem se na peru a ako otkucam 2 logujem se na ziku. Ako neko ne zna da mi resi ovo nek mi barem posalje neke njegove scriptove da nekako provalim onaj help mi nicemu nesluzi jer ga ne razumem najbolje sve je vrlo komplikovano.Ako nekoga interesuje slican je rad kao u pascalu (ali ja ne znam pascal) pa bi moga da proba. Da mi nebi postavljali silna pitanja scriptovi sluze da se lakse logujete na bbs (kratko receno).Pa barem probajte da napravite. Puno Pozdrava od Ceda.Hvala unapred
algoritmi.28 .obj,
> I kako da saznam koji parametri su potrebni za poziv nekog dela .LIB > iz mog programa? Pa što ne pitaš nekoga? ;) Šalim se, od kompajlera koji sam video jedino C++ može da ubacuje parametre u objektnu datoteku (naravno, mislim na slučaj kada se pri kompajliranju ne generiše Debugging Information). Za Quick BASIC ne znam. Ukratko, u objektnu datoteku se najčešće ne ubacuju informacije o parametrima, pa mislim da na ovaj način nećeš moći da saznaš nešto više o funkcijama biblioteke koja te zanima. :( Ou bi džej
algoritmi.29 robert,
>> Međutim, kako da .LIB ili .OBJ za koji nemam ng ili help, pregledam >> i vidim da li ima nešto interesantno i primenljivo? Hm, baš mi i nije najjasnije šta ti hoćeš ali ako želiš da vidiš šta sve ima u nekoj .LIB datoteci možeš je pozvati (ovo pričam za Borlandov lib manager: TLIB) sa: tlib <ime.lib> , <ime list datoteke> pa će ti ta list datoteka sadržati sve simbole i njihove veličine po modulima koji se sadrže u .LIB fajlu. Recimo: tlib mathl.lib , math generiše math.lst datoteku. Probaj pa vidi jeli to ono što tebi treba.
algoritmi.30 zsiz,
Dali je neko izračunao nove koeficijente i limite za proračun plate? Na osnovu Službenog lista, izračunao sam (a nisam siguran da sam dobro izračunao): NETO BRUTO <=7,833,766,000 NETO*1.923077 7,833,766< <=60,862,338,000 (NETO-3,012,987,000)*3.125 >60,862,338,000 (NETO-12,051,948,000)*3.703704 Ovo gore je za S=23% (stopa doprinosa za rad) Pozdrav.
algoritmi.31 rpausic,
Šaljem ti f-ju u clipper-u. Nemam vremena za više objašnjenja. Valjda ćeš se snaći. net_brut.prg
algoritmi.32 dr.grba,
Verovatno ste primetili da je nastala prilična gužva zbog odluke SPPFN da izvrši dopunu svakog žiro računa dodatnim kontrolnim brojem. U tusvrhu sam doživeo najtraumatičnije iskustvo u životu u radu sa Službenim listovima. Sve u svemu, SPP šalje korisnicima obaveštenje u kome objavljuje kontrolni broj i novi izgled žiro računa. Poziv na referencu je SLužbeni list SR Jugoslavije 24/93. Postoji i dopuna/izmena u Sl. listu SRJ 57/93. čiji naslov je "UPUTSTVO o izmenama i dopunama uputstva o obliku, sadržini i upotrebi instrumenata platnog prometa za plaćanja u zemlji", strana 1157. Ne trudite se da pronađete ovo. Toliko je nerazumljivo da nisam ni uz pomoć okorelog čitaoca Sl. listova (moja matora) uspeo da raskukuljim. Evo algoritma po kome će svako od vas moći da smlati programče, i na kraju da ručno izvede kontrolni broj žiro računa : čiro račun najpre treba proširiti na formu od striktno 18 cifara, i to tako da se broj partije (desni broj) popuni levim krompirima. primer : 65500-601-2986 ---> 65500-601-0000002986 Sada se dobijeni broj ponderiše brojevima 2, 3, 4, ....., 18, 19 ZDESNA ULEVO. 6 5 5 0 0 6 0 1 0 0 0 0 0 0 2 9 8 6 * * * * * * * * * * * * * * * * * * 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 ----------------------------------------------------------------------- 114+ 90+ 85+ 0+ 0+ 84+ 0+ 12+ 0+ 0+ 0+ 0+ 0+ 0+ 10+ 36+ 24+ 12 = 467 Dobijeni zbir pondera (467) se celobrojno deli sa 11 i lokalizuje se ostatak : 467 : 11 = 42, ostatak 5 Ostatak se oduzima od 11: 11 - 5 = 6 i dobijeni broj je kontrolni broj. Ukoliko je dobijeni broj 10 ili 11, za kontrolni broj se usvaja broj 0. Ovaj algoritam, koji je daleko jednostavniji nego što je to napisano u SL.L.SRJ, sam na mišiće izbunario od nekih prijatelja u banci. Nadam se da će moj trud oko pisanja ove poruke nekome biti na korist.
algoritmi.33 dr.grba,
>> primer : 65500-601-2986 ---> 65500-601-0000002986 ... >> 11 - 5 = 6 >> >> i dobijeni broj je kontrolni broj. Ukoliko je dobijeni broj 10 ili >> 11, za kontrolni broj se usvaja broj 0. Izmena - dopuna : Dobijeni kontrolni broj se u žiro račun dodaje između drugog i trećeg broja, dakle 65500-601-2986 ----> 65500-601-6-2986 Izvinjavam se zbog ove omaške u 1.32.
algoritmi.35 nbulatovic,
▀skinuo sam neke fajlove sa EZ-INFO-a pa evo jednog; recite da li vas interesuje pa da saljem jos (ima jedno 2mb slicnih) ovo je inace program za neuronske mreze koji je pisao neki programer iz nase. sve je toliko dokumentovano da ce vas zbuniti! nasanets.zip
algoritmi.36 snemcev,
>> Verovatno ste primetili da je nastala prilična gužva zbog odluke >> SPPFN da izvrši dopunu svakog žiro računa dodatnim kontrolnim brojem. Još da napomenem da su samo "normalni" žiro računi dobili kontrolni broj. Porezi i ostali računi koji su već imali četiri grupe cifara u broju računa nisu dirani.
algoritmi.37 snemcev,
>> ▀skinuo sam neke fajlove sa EZ-INFO-a pa evo jednog; recite da li vas Ajd baci u KOM:jupak broj EZ Info-a. Bio bih jako zainteresovan da ga nazovem.
algoritmi.38 dejanr,
>> čiro račun najpre treba proširiti na formu od striktno 18 cifara, i to >> tako da se broj partije (desni broj) popuni levim krompirima. Hvala na interesantnoj poruci - ja sam i sam "dešifrovao" ovaj checksum, i to po analogiji po kontrolnom broju koji se dodavao na broj fakture i koji se računa na identičan način. Međutim, ovo dopunjavanje nulama je zanimljiva pojava - polje žiro-računa je, za firme, do sada dimenzionisano na 15 znakova, ovo je novitet da se ide na 18! Sa druge strane, ni 18 cifara nije dovoljno da se upisuju žiro računi privatnih lica, zanatskih radnji, agencija itd. Kako li će tu biti sa checksum-om i da li će ga uopšte biti?
algoritmi.39 dr.grba,
>> na 15 znakova, ovo je novitet da se ide na 18! Sa druge strane, ni >> 18 cifara nije dovoljno da se upisuju žiro računi privatnih lica, >> zanatskih radnji, agencija itd. Kako li će tu biti sa checksum-om i >> da li će ga uopšte biti? Mislim da je tolika zbunologija u pitanju, da stvarno više nema smisla. Te ovakav, te onakav ponder, te sleva, te zdesna. Pa fondovi koji već imaju četiri javne grupe nemaju potrebu za kontrolnom cifrom, pa trte-mrte... A znate li kako je dosad izgledao kontrolni broj individualne partije? Posmatrajte samo poslednji broj žiro računa : 65500-601-2986 Cifra 6 u 2986 je kontrolna cifra. Dobijena je na sledeći način: 298 popuniti levim krompirima do šest cifara : 000298 Dobijeni broj ponderisati brojevima od 0 do 5 SLEVA NADESNO i zbir provući kroz modul 11 po poznatom obrascu: 0 0 0 2 9 8 * * * * * * 0 1 2 3 4 5 ---------------------- 0+ 0+ 0+ 6+ 36+ 40 = 82 82 : 11 = 7, ostatak 5. 11 - 5 = 6, i to je kontrolni broj. I sad je ceo broj partije 2986. Brojevi kod kojih je dobijen rezultat 11 imaju kontrolni broj nula, a brojevi kod kojih je dobijen rezultat 10 ne mogu se upotrebiti kao broj individualne partije. ...I tako suzbismo liticu... Za kraj ove priče, ako baš hoćete da ugradite totalnu kontrolu žiro računau svoje programe, osim algoritama koje sam dosad opisao, preostaje i poređenje operativnog broja službe (prvi broj žiro računa) i naziva filijale/ekspoziture/poslovnice SPPFN, kao i šifre opštine (skriveni broj, piše se samo interno) sa tabelom objavljenom u Sl. listu SRJ 24/93, strane 481-484. Postoji i oznaka vrste žiro računa (ili kako se već zove), drugi vidljivi broj (601, 678, 605......) za koje ne znam referencu, ali znam samo da je objavljeno u nekom Službenom listu u toku 1993. Što se tiče broja opštine, on se proširuje tek unutar transakcija SPPFN. Za Kikindu je to broj 215, pa puni žiro račun moje firme potreban za finansijsku transakciju sad glasi : 65500-215-601-6-2986. Postoje još neke oznake, ali tu već zalazim u domen koji ne poznajem dobro. Možda neko zna, pa neka me dopuni, e da dođemo do kompletne priče.
algoritmi.40 dejanr,
Što se tiče broja žiro računa građana i kontrolnih cifara, stvar izgleda (bar kod Beobanke) stoji ovako: kontrolni broj se pravi samo za sam račun od Beobanke, dakle ono 60811-620-16. Po pravilima koja su ovde opisana, kontrolni broj je 1, dakle čitav broj postaje 60811-620-1-16. Ono iza toga, što je žiro račun čoveka u okviru banke, nema kontrolni broj, i prosto se nadodaje na ovo, dakle broj nekog računa privatnog lica (51) u ekspozituri 353 (to je ona kod Londona) mogao bi da bude 60811-620-1-16-51-353-5555555. E sad, još ostaje pitanje da i ovaj drugi deo nema svoj checksum, tj. da recimo ono zadnje 5 u 51-353-5555555 nije nekakav checksum.
algoritmi.41 snemcev,
>> E sad, još ostaje pitanje da i ovaj drugi deo nema svoj checksum, tj. >> da recimo ono zadnje 5 u 51-353-5555555 nije nekakav checksum. Za Beobanku ne znam, ali Vojvođanska banka sigurno nema checksum. Sa druge strane, Jugobanka i Investbanka ih imaju i na brojevima tekućih računa, pa zašto ih nebi bilo i na brojevima žiro računa.
algoritmi.42 dr.grba,
>> Beobanke, dakle ono 60811-620-16. Po pravilima koja su ovde >> opisana, kontrolni broj je 1, dakle čitav broj postaje >> 60811-620-1-16. Ono iza toga, što je žiro Potvrđeno je kao tačno. >> E sad, još ostaje pitanje da i ovaj drugi deo nema svoj checksum, >> tj. da recimo ono zadnje 5 u 51-353-5555555 nije nekakav checksum. E, pa trebalo bi da jeste, ali ne znam po kom ključu.
algoritmi.43 snemcev,
>> E sad, još ostaje pitanje da i ovaj drugi deo nema svoj checksum, tj. >> da recimo ono zadnje 5 u 51-353-5555555 nije nekakav checksum. Za Beobanku ne znam, ali Vojvođanska banka sigurno nema checksum. Sa druge strane, Jugobanka i Investbanka ih imaju i na brojevima tekućih računa, pa zašto ih nebi bilo i na brojevima žiro računa.
algoritmi.44 oduz,
>**> ovo je inace program za neuronske mreze koji je pisao neki >**> programer iz nase. sve je toliko dokumentovano da ce vas >**> zbuniti! Ovo je iz readme fajla iz nasanets.zip: "...format. Finally, note that NETS comes with a complete User's Guide to help you get started with neural network technology..." Moje pitanje je: Where is the User's guide ? :) Ogi
algoritmi.45 slom,
Kako se obicno resava sledeci problem ? Imam na ekranu jedan prozorcic u kome se nalazi neki tekst. Tekst treba pomocu strelica,PgUp,PgDn,Home i End tastera pomerati, skrolovati levo-desno, gore-dole, slicno kao u editoru. Dakle, kako na brz i jednostavan nacin realizovati skrolovanje ? sm
algoritmi.46 vitez.koja,
#=> Dakle, kako na brz i jednostavan nacin realizovati #=> skrolovanje ? Za skrolovanje gore-dole imaš dovoljno brze bios funkcije. Ako ti treba i pomeranje levo-desno, onda je bolje da sam napišeš funkcije koje će baratati direktno sa video memorijom.
algoritmi.47 peca.st,
!-> Dakle, kako na brz i jednostavan nacin !-> realizovati skrolovanje ? Pucaš direktno u video memoriju. (recimo da si je predstavio matricom 80*25 od po dva bajta) Na primer, ako hoćeš da pomeriš dole, onda u jednoj for petlji j+1 nizu dodeliš j niz, a na početak (prvi red prozora) ubaciš string koji se do tada nije video. (njega čitaš iz, recimo, liste) Slično je i za levo, i za gore, i za desno... Peđa.
algoritmi.48 janko,
> Kako se obicno resava sledeci problem ? > > Imam na ekranu jedan prozorcic u kome se nalazi neki > tekst. Tekst treba pomocu strelica,PgUp,PgDn,Home i End > tastera pomerati, skrolovati levo-desno, gore-dole, slicno > kao u editoru. > > Dakle, kako na brz i jednostavan nacin realizovati > skrolovanje ? Na pravim operativnim sistemima, i pravom hardveru, pozivom rutine operativnog sistema. Ako je reč o tekst modu, na MS DOS-u postoji BIOS rutina koja ume da skroluje tekst (ako se sećam, i manji deo ekrana). Lično, na pisiju ne bih, kada bih pisao program koji treba da bude brz, čak, ni koristio skrolovanje već ponovni ispis promenjenog sadržaja! Zašto? Jer je brzina video memorije, osim na VL pločama, daleko manja od memorije. Skrol troši za svako slovo po dva pristupa sporoj memoriji, a ponovni ispis samo po jedan. Razlika je ogromna.
algoritmi.49 zolika,
Molio bih nekoga ko bi mogao da mi pomogne, da mi navede neki algoritam koji transformiše lozinku zadatu kao ASCII tekst u nekoliko brojeva (tj. bajtova). Transformacija bi, po mogućnosti, trebalo da dâ bar 4-bajtni rezultat. Ne bih objašnjavao za šta mi je ovo potrebno, mislim da će se mnogi dosetiti i sami... :-))))))
algoritmi.50 nbulatovic,
> Ovo je iz readme fajla iz nasanets.zip: > > "...format. Finally, note that NETS comes with a complete > User's Guide to help you get started with neural network > technology..." > > Moje pitanje je: > > Where is the User's guide ? :) ne treba ti user's gide; samo pogledaj fajl PROP.C i razumeces kako radi.
algoritmi.51 peca.st,
!-> Transformacija bi, po !-> mogućnosti, trebalo da dâ bar 4-bajtni !-> rezultat. Ne bih objašnjavao za šta mi je !-> ovo potrebno, mislim da će se mnogi !-> dosetiti i sami... :-)))))) 4 bajta = 32 bita Sve mi ovo smrdi na CRC-32 i tvoj BBS. ;) Imaš u knjizi PC Modemske komunikacije detaljno opisan CRC algoritam, iz njega se sve jasno vidi... Peđa.
algoritmi.52 robert,
>> Sve mi ovo smrdi na CRC-32 i tvoj BBS. ;) >> Imaš u knjizi PC Modemske komunikacije detaljno opisan CRC Ali Zoliki treba verovatno jednosmeran aloritam kao na UNIX-u a to bih voleo i ja da vidim. To je prilično korisna stvarčica :). Znači algoritam koji kodira neki alfanumerički niz u neki drugi alfanumerički niz fiksne dužine a da pri tome transformacija postoji samo u smeru kodiranja ali ne i dekodiranja. Dakle potrebna je neka funkcija koja nema inverznu funkciju ako sam u pravu :).
algoritmi.53 dr.grba,
>> Molio bih nekoga ko bi mogao da mi pomogne, da mi navede neki >> algoritam koji transformiše lozinku zadatu kao ASCII tekst u >> nekoliko brojeva (tj. bajtova). Transformacija bi, po mogućnosti, >> trebalo da dâ bar 4-bajtni Nešto vrlo jednostavno za implementaciju, a simpatično i primenljivo je napravio moj mladi koleza snemcev, a to je transformacija stringa u broj koji se dobija kao zbir funkcije svakog sloa lozinke, a to je ASCII vrednost puta broj mesta slova u stringu, dakle: broj("dr.grba") = asc("d")*1 + asc("r")*2 + asc(".")*3 + asc("g")*4 + asc("r")*5 + asc("b")*6 + asc("a")*7 = = 100*1 + 114*2 + 46*3 + 103*4 + 114*5 + 98*6 + 97*7 = = 100 + 228 + 138 + 412 + 570 + 588 + 679 = 2715 E, sad, ako neko provali da u lozinki 2715 piše "dr.grba", onda nazdravlje. Za belosvetsku upotrebu ne dovoljno, nego sasvim dovoljno. A jednostavno za ugradnju u CFG fajlove (;
algoritmi.54 a.kircanski,
_-=> broj("dr.grba") = asc("d")*1 + asc("r")*2 + asc(".")*3 + _-=> asc("g")*4 + asc("r")*5 + asc("b")*6 + asc("a")*7 = _-=> = 100*1 + 114*2 + 46*3 + 103*4 + 114*5 + 98*6 + 97*7 = _-=> = 100 + 228 + 138 + 412 + 570 + 588 + 679 = 2715 hmmm, thanks, ovo dugo tražim :-)
algoritmi.55 peca.st,
!-> Dakle potrebna je neka !-> funkcija koja nema inverznu funkciju ako !-> sam u pravu :). Pa CRC nema inverznu funkciju! To je baš ono što tebi (i njemu) treba. Peđa.
algoritmi.56 kale,
>> Nešto vrlo jednostavno za implementaciju, a simpatično i primenljivo je >> napravio moj mladi koleza snemcev, a to je transformacija stringa u broj >> koji se dobija kao zbir funkcije svakog sloa lozinke, a to je ASCII vrednost >> puta broj mesta slova u stringu, dakle: Jednostavno jeste, ali ne odgovara za šifrovanje lozinki. Jeste da se iz onog broja ne može rekonstruisati "dr.grba", ali je izuzetno lako naći (čak i bez računara!) neki ASCII string koji će da da isti rezultat. Smisao tražene funkcije je da onome ko dođe u priliku da pročita njene rezultate bude *jako* teško da ih upotrebi za generisanje password-a koji će "da prođe". >> Za belosvetsku upotrebu ne dovoljno, nego sasvim dovoljno. Ni blizu! Pozdrav!
algoritmi.57 mjova,
> Ali Zoliki treba verovatno jednosmeran aloritam kao na > UNIX-u a to bih voleo i ja da vidim. To je prilično > korisna stvarčica :). CRC nije potrebno raditi za tako kratke reči. najbolji predlog je da pogledate po 'mojoj školi C-a' tamo je zz dao primer jednostavne zavrzlame jednog smera.
algoritmi.58 dr.grba,
>> _-=> = 100 + 228 + 138 + 412 + 570 + 588 + 679 = 2715 >> >> hmmm, thanks, ovo dugo tražim :-) Zahvaliti autoru algoritma, snemcevu.
algoritmi.59 dr.grba,
>> Jednostavno jeste, ali ne odgovara za šifrovanje lozinki. Jeste da >> se iz onog broja ne može rekonstruisati "dr.grba", ali je izuzetno >> lako naći (čak i bez računara!) neki ASCII string koji će da da >> isti rezultat. Smisao Slažem se da je algoritam rudimentaran, i ja ga svakako ne bih upotrebljavao da kriptujem nešto što interesuje neku stranu obaveštajnu službu (al' sad se**m, k'o da ja baratam takvim stvarima (: )... ...ali zar nisi razmišljao o mogućnosti zapetljavanja algoritma, a njega da NE objavljuješ. Šta misliš, kako sam došao do password("dr.grba") = 110704 ili password("SeZaM") = 90567 ? Naravno, lupao sam bez veze, ne traži ključ, samo da ti ilustrujem šta se sve može. Normalna je stvar da shodno nivou i potrebi zaštite sledi i prikladno projektovanje iste. Daleko je ta problematika odmakla od proste funkcijice smišljene za tri minuta. U kojoj poruci pre, spomenut je CRC algoritam kao jedna od tekovina istraživanja u ovoj oblasti...
algoritmi.60 prvul,
Ů...ali zar nisi razmišljao o mogućnosti zapetljavanja algoritma, Ůa njega da NE objavljuješ. Šta misliš, kako sam došao do Ůpassword("dr.grba") = 110704 ili password("SeZaM") = 90567 ? Ů▄▄ Pa ako neko uspe da pročita te snimljene brojeve, nije zgoreg pretpostaviti da će doći i do kopije programa. A onda treba par desetina minuta dibagovanja i eto algoritma. Ukratko, pouzdan algoritam mora ostati pouzdan čak i ako je poznat onome ko provaljuje šifru.
algoritmi.61 salex,
Kako Beobanka racuna kamate na dug po tekucem racunu ? Predpostavljam da je u pitanju jedan od dva obrasca koja prilazem . Mesecna kamatna stopa STOPA ( 400%) Iznos duga DUG Broj dana do izmirenja duga DANI Algoritam 1. KAMATA = DUG * ( STOPA / 30 * DANI ) Proporcionalno broju dana . Algoritam 2. KAMATA = DUG * ( EXP( LN( 1 + STOPA ) / 30 ) ^ DANI - 1 ) Izracunavanjem dnevne stope , pa kamatom na kamatu za dane . Salex
algoritmi.62 niklaus,
(:> Jednostavno jeste, ali ne odgovara za šifrovanje lozinki. (:> Jeste da se iz onog broja ne može rekonstruisati "dr.grba", (:> ali je izuzetno lako naći (čak i bez računara!) neki ASCII (:> string koji će da da isti rezultat. Smisao Ma grba je (valjda) dao samo (naivnu) ilustraciju. Upravo je fora da se zolika sam namuči (more tu uopšte nema muke), i da niko drugi ne zna algoritam... Ovo me podseća na algoritme, koje koriste simulatori realnih (prirodnih) procesa, tipa neke igre (fudbal menadžeri)... (:niklaus:)
algoritmi.63 d.petrovic,
Ă>>> Za belosvetsku upotrebu ne dovoljno, nego sasvim dovoljno. Ă> Ă> Ni blizu! Dovoljno, samo malo izmeni funkciju da bi bila unikat, tj. sad je lako generisati password, ali ne mozes generisati password za moju slicnu funkciju.
algoritmi.64 d.petrovic,
Ă> Pa ako neko uspe da pročita te snimljene brojeve, nije zgoreg Ă> pretpostaviti da će doći i do kopije programa. A onda treba par Ă> desetina minuta dibagovanja i eto algoritma. Koliko pari desetina? Pre će naći proveru password-a pa je isključiti nego što će naći algoritam, ali kad se to uvrne 2-3 puta može manijak i da odustane. Osim toga da raspravljamo o apsolutnoj zaštiti ili da se odmah složimo da je nemoguća.
algoritmi.65 ndragan,
/ Jednostavno jeste, ali ne odgovara za šifrovanje lozinki. Jeste da se A onda se stvar malo zakomplikuje nekom elementarnom operacijom nad bajtom pre množenja, naprimer umesto asc("r")*6, ubaci se shr(asc("r")),mod(6,16))*6, gde umesto "r" i 6 dođu odgovarajuće vrednosti iz stringa. Ne usporava previše, a dovoljno ga komplikuje. Umesto shr, može shl, rl (ovo je iz Z80, ne znam kako izgleda na 8*86), xor ili čak minus. Imam jedno pravilo: sistem treba da je dovoljno zamumuljen da obeshrabri diletante i umereno bistre hakere, a ko ga razbije, dobrodošao za saradnika.
algoritmi.66 bojt,
>> Algoritam 2. >> KAMATA = DUG * ( EXP( LN( 1 + STOPA ) / 30 ) ^ DANI - 1 ) Da nije KAMATA = DUG*( (1+STOPA/100)^(DANI/30) - 1 ) ??? BTW, zna li ko posle kog nedozvoljenog minusa se blokira t.račun?
algoritmi.67 janko,
> A onda se stvar malo zakomplikuje nekom elementarnom > operacijom nad bajtom pre množenja, naprimer umesto > asc("r")*6, ubaci se shr(asc("r")),mod(6,16))*6, gde > umesto "r" i 6 dođu odgovarajuće vrednosti iz stringa. Ne > usporava previše, a dovoljno ga komplikuje. Ech, NDragane i DPetroviću. Nije dovoljno (čak, ni poželjno!) zamumuljivati tako napamet, jer to ne daje dobre rezultate. Cilj algoritma je da broj pokušaja za provaljivanje (ako neko ne zna šifru, naravno) bude što veći. Ovo sve, pri ovakvim transformacija, zadire u teoriju grupa, i "prostor" po kome se razbacuju predstavnici šifara. Cilj je da predstavnici šifara budu ravnomerno razbacani po prostoru, i da je prostor dovoljno velik, da postane iluzorno "peške probati." Ukratko, ako neko hoće da radi tako nešto, od srca mu savetujem da malo čita literaturu. Npr. Knuta.
algoritmi.68 snemcev,
>>>> _-=> = 100 + 228 + 138 + 412 + 570 + 588 + 679 = 2715 >>>> hmmm, thanks, ovo dugo tražim :-) >> Zahvaliti autoru algoritma, snemcevu. Nisam siguran da nisam izmislio toplu vodu. Ovo koristim negde od '89. i zasad je bilo sasvim dovoljno da otera one koji bi da čačkaju po programu.
algoritmi.69 snemcev,
>> Kako Beobanka racuna kamate na dug po tekucem racunu ? >> KAMATA = DUG * ( EXP( LN( 1 + STOPA ) / 30 ) ^ DANI - 1 ) >> Izracunavanjem dnevne stope , pa kamatom na kamatu za dane . Ne znam za Beobanku, ali Jugobanka koristi ovaj drugi.
algoritmi.70 dr.grba,
>> Pa ako neko uspe da pročita te snimljene brojeve, nije zgoreg >> pretpostaviti da će doći i do kopije programa. A onda treba par >> desetina minuta dibagovanja i eto algoritma. Evo, pokušaj da se proslaviš i razbij ovu lozinku. Korišćen je tačno onaj opisani algoritam iz moje poruke. logon.exe
algoritmi.71 zolika,
>> Imaš u knjizi PC Modemske komunikacije detaljno opisan CRC Da, ali nemam knjigu :-(((((
algoritmi.72 zolika,
>> Ali Zoliki treba verovatno jednosmeran aloritam kao na UNIX-u a to >> bih voleo i ja da vidim. To je prilično korisna stvarčica :). Tačno. Kao na UNIXu. Ili na VMSu. Ili na SEZAMu. Ili na bilo kojem sistemu kome se pristupa pomoću lozinke.
algoritmi.73 dejanr,
>> Ali Zoliki treba verovatno jednosmeran aloritam kao na UNIX-u a to >> bih voleo i ja da vidim. To je prilično korisna stvarčica :). Mislim da ćemo najlakše to naći ako neko izvadi odgovarajući deo koda iz source-a za neki PD Unix. Valjda je "dovučeno" par takvih, pa šteta da trunu. Trebalo bi da je taj deo koda razmerno lako naći. Ja danas gledao ima li u nekom od manuela VMS-a koji se polinom tačno koristi, sve mi se nešto činilo da sam to nekada video. Ali ne nađoh :(
algoritmi.74 kale,
>> ...ali zar nisi razmišljao o mogućnosti zapetljavanja algoritma, >> a njega da NE objavljuješ. Smisao transformacije password-a u neki broj je da ne postoji jednostavna inverzna transformacija čak i ako je algoritam kodiranja poznat "provalniku". Ovo je osnovna stvar. Nije ideja sakriti algoritam kodiranja, već učiniti njegovo poznavanje nekorisnim. Ti računaš na tajnost tvog algoritma kodiranja što ne odgovara polaznoj pretpostavci, a i u praksi se nije pokazalo kao dobra _osnovna_ zaštita.
algoritmi.75 kale,
>> Ma grba je (valjda) dao samo (naivnu) ilustraciju. >> Upravo je fora da se zolika sam namuči (more tu uopšte nema muke), >> i da niko drugi ne zna algoritam... žovek je tražio savet, i dobio loš savet. Sad ti kažeš da savetodavac nije hteo da mu kaže rešenje nego da ga inspiriše. Pošto nije sasvim očigledno da je savet loš (a jeste loš), neki ljudi mogu da poveruju da je dobar i da ga koriste ubeđeni u njegovu pouzdanost. Nije nam cilj da neko nauči nešto loše, a možda i da pretrpi štetu zbog neznanja, zar ne?
algoritmi.76 kale,
>> Evo, pokušaj da se proslaviš i razbij ovu lozinku. Korišćen je tačno >> onaj opisani algoritam iz moje poruke. Gde je lozinka? odgovor i na 1.63 d.petrovic >> Dovoljno, samo malo izmeni funkciju da bi bila unikat, tj. sad je >> lako generisati password, ali ne mozes generisati password za moju >> slicnu funkciju. Tvoj logon.exe samo pišti, a ne daje broj na izlazu. Ajde napravi (ne bilo ti zapoveđeno) verziju koja umesto pištanja ispiše broj koji je rezultat transformacije. Poželjno je da program nekad prestane da se izvršava da bi moj program mogao da ga pozove (da ne moram da kucam). Nemoj da mi postavljaš domaći tipa "otkrij algoritam" jer to nije ono što je traženo. Zadrži se na linearnoj transformaciji k1*z1+k2*z2+... (gde su k-ovi koeficijenti a z-ovi ASCII kodovi password-a). Zauzvrat, ja ću tebi da pošaljem sors programa koji će to da razbije "in no time". Naravno, zadaj i neki broj za koji treba naći password koji će da prođe. Pozdrav, Kale
algoritmi.77 kale,
>> Nisam siguran da nisam izmislio toplu vodu. Ovo koristim negde od '89. i >> zasad je bilo sasvim dovoljno da otera one koji bi da čačkaju po programu. A ko su bili ti što bi čačkali po programu (korisnici, programeri, hakeri)? Primeti samo jednu "sitnicu" u tvom algoritmu: Neka lozinka ima najviše 8 znakova (malih i velikih slova i cifara). Broj lozinki je 62^8 što je preko 2 E 14. Broj koji je rezultat transformacije je >= 36 * asc("0") = 1728 i <= 36 * asc("z") = 4392. Pošto neke vrednosti između ova dve ekstremne vrednosti ne mogu da se dobiju, to je broj različitih rezultata manji od 2664. Ovako mali broj mogućnosti čini ti algoritam ranjivim čak i na nasumično probanje. Pozdrav, Kale
algoritmi.78 snemcev,
>> Evo, pokušaj da se proslaviš i razbij ovu lozinku. Korišćen je tačno >> onaj opisani algoritam iz moje poruke. Izbi mi argument iz ruke. ;) A baš sam ovo hteo da pošaljem.
algoritmi.79 peca.st,
!-> Imam jedno pravilo: sistem treba da je !-> dovoljno zamumuljen da obeshrabri !-> diletante i umereno bistre hakere, a ko !-> ga razbije, dobrodošao za saradnika. a) Izgleda da mnogi ovde nisu dobro shvatili šta je zolika hteo. b) Izgleda da ja nisam dobro shvatio šta je zolika hteo. If a) Then Zolika je pomenuo da mu treba nešto što će od LOZINKE (koja ima recimo n karaktera) napraviti 4bajtni "otisak". To znači, da kad neko unese lozinku, ona prolazi kroz isti taj algoritam, tako dobijeni otisak se proverava sa originalnim (koji je verovatno na disku) i ako je provera prošla Ok, korisnik lozinke se pušta dalje. Svi ovde pomenuti algoritmi (osim CRCa) imaju suviše veliki propusni opseg. Recimo, onaj algoritam što je poslao dr.grba daje istu vrednost za "dr.grba" i za "fs.grba" (napamet sam računao, nadam se da sam pogodio). Procenat takvih mogućnosti je ogroman, zato takvi algoritmi nisu pogodni za ovu situaciju. (za neke druge jesu) Else Izvinjavam se. Peđa.
algoritmi.80 dr.grba,
>> Nisam siguran da nisam izmislio toplu vodu. Ovo koristim negde od >> '89. i zasad je bilo sasvim dovoljno da otera one koji bi da >> čačkaju po programu. 'Ajde onda, objasni nevernim Tomama koliki je efekat ovakvih kriptova.
algoritmi.81 snemcev,
>> Tvoj logon.exe samo pišti, a ne daje broj na izlazu. žini mi se da je taj logon.exe dovoljno blizu realne situacije. Takva provera se recimo nalazi na ulazu u program. Ti nemaš pojma koji je broj rezultat koje ulazne lozinke, a treba da provališ u sistem. >> Naravno, zadaj i neki broj za koji treba naći password koji će da >> prođe. Kad se zna broj, nije problem. Problem je što (zasad) ne znaš broj.
algoritmi.82 snemcev,
>> Ovako mali broj mogućnosti čini ti algoritam ranjivim čak i na >> nasumično probanje. Nisam rekao da sam pronašao Ameriku i sasvim sam svestan nedostataka ovog algoritma, ali je vrlo jednostavan za implementaciju. Prednost je što se ne zna ni dužina lozinke, ni tačna transformacija, a ni broj koji je rezultat transformacije za pojedine lozinke. Btw, voleo bih da neko nađe lozinku za onaj logon.exe pa da nastavimo diskusiju sa nečim konkretnim u rukama.
algoritmi.83 nkbog,
> Evo, pokušaj da se proslaviš i razbij ovu lozinku. Korišćen je tačno > onaj opisani algoritam iz moje poruke. Provaljuju: CBAN EAAN BABN BBTA PELA MEMA DRBE i sve one koje zadovoljavaju: 1*K1+2*K2+3*K3+4*K4 = 706 (2C2h), gde su K1 do K4 ASCII kodovi slova (važe velika slova). NB. p.s. Program je bio PKLITE-ovan, pisan u nekakvom Borlandovom paketu (paskalu?) p.p.s. Nešto posle 12h sam završio poziv Sezama, u 12:40 pišem ovu poruku, ukupno vreme do nalaženja prve lozinke je ispod pola sata (nisam imao digitron pri ruci, inače bi bilo brže) već sam nažvrljao program u QBasicu koji brute- force nalazi sve lozinke... toliko o sigurnosti ovakve zaštite ;)... Za svaku vrednost preko 5 DM u ovoj zemlji je ovakva zaštita slaba...
algoritmi.84 a.kircanski,
_-=> iz source-a za neki PD Unix. Valjda je "dovučeno" par _-=> takvih, pa šteta Hm, gde ima da se nađe taj PD unix?
algoritmi.85 niklaus,
(:>>> Ma grba je (valjda) dao samo (naivnu) ilustraciju. (:>>> Upravo je fora da se zolika sam namuči (more tu uopšte nema (:>>> muke), i da niko drugi ne zna algoritam... (:> (:> žovek je tražio savet, i dobio loš savet. Sad ti kažeš da (:> savetodavac nije hteo da mu kaže rešenje nego da ga (:> inspiriše. Pošto nije sasvim očigledno da je savet loš (a (:> jeste loš), neki ljudi mogu da poveruju da je dobar i da ga (:> koriste ubeđeni u njegovu pouzdanost. Nije nam cilj da neko (:> nauči nešto loše, a možda i da pretrpi štetu zbog neznanja, (:> zar ne? Stvar je sledeća... Ljudi od kojih će se, u jednom trenutku njihovog srećnog programerskog života, tražiti da naprave algoritam za sigurno čuvanje šifara, bi trebalo da su dovoljno inteligentni da pronađu dovoljno siguran algoritam, ili da su jednostavno u stanju da od ponuđenih algoritama, nađu onaj sa najmanjom verovatnoćom za "provalu". (:niklaus:)
algoritmi.86 niklaus,
(:> a) Izgleda da mnogi ovde nisu dobro shvatili šta je zolika hteo. (:> b) Izgleda da ja nisam dobro shvatio šta je zolika hteo. (:> If a) Then (:> Else Izvinjavam se. begin If ( a) and b) ) then reci_peci(' dr.grba je dao samo ilustrativan primer.'); exit(0); š Dosta o CRCovima, please (; ć end. (:niklaus:)
algoritmi.87 peca.st,
!-> Btw, voleo bih da neko nađe lozinku za !-> onaj logon.exe pa da nastavimo diskusiju !-> sa nečim konkretnim u rukama. Ako je u logon.exe korišćen onaj algoritam, moraš nam dati koji je broj zapamćen, to jest za koji broj da tražimo šifru. Jer, cilj je bio da se iz otiska ne može naći šifra koja će dati takav otisak! Peđa.
algoritmi.88 peca.st,
!-> Kad se zna broj, nije problem. Problem je !-> što (zasad) ne znaš broj. Kad se zna broj dobijen posle CRC algoritma, opet je problem (i to praktično iste težine kao da ne znaš taj broj). Ovako kako ti kažeš, bilo ko ko pristupi disku BBSa (jer ovde pre svega o tome govorimo) svejedno mu je dal će naći fajl sa originalnim šiframa ili fajl sa otiscima šifara. Jer, ako ima otisak - i sam kažeš da nije problem naći šifru koja prolazi. Poenta je da NIKO (ni sysop, pa ni onaj ko je pisao softver) ne može da zna šifru korisnika. To je mana algoritma za ovaj slučaj, u nekim drugim slučajevima verovatno bi poslužio. Peđa.
algoritmi.89 peca.st,
!-> Btw, voleo bih da neko nađe lozinku za !-> onaj logon.exe pa da nastavimo diskusiju !-> sa nečim konkretnim u rukama. Ako je u logon.exe korišćen onaj algoritam, moraš nam dati koji je broj zapamćen, to jest za koji broj da tražimo šifru. Jer, cilj je bio da se iz otiska ne može naći šifra koja će dati takav otisak! Peđa.
algoritmi.90 peca.st,
!-> Kad se zna broj, nije problem. Problem je !-> što (zasad) ne znaš broj. Kad se zna broj dobijen posle CRC algoritma, opet je problem (i to praktično iste težine kao da ne znaš taj broj). Ovako kako ti kažeš, bilo ko ko pristupi disku BBSa (jer ovde pre svega o tome govorimo) svejedno mu je dal će naći fajl sa originalnim šiframa ili fajl sa otiscima šifara. Jer, ako ima otisak - i sam kažeš da nije problem naći šifru koja prolazi. Poenta je da NIKO (ni sysop, pa ni onaj ko je pisao softver) ne može da zna šifru korisnika. To je mana algoritma za ovaj slučaj, u nekim drugim slučajevima verovatno bi poslužio. Peđa.
algoritmi.91 kale,
>> >> Evo, pokušaj da se proslaviš i razbij ovu lozinku. Korišćen je tačno >> >> onaj opisani algoritam iz moje poruke. >> Izbi mi argument iz ruke. ;) A baš sam ovo hteo da pošaljem. Onaj ne prođe baš dobro, samo ti pošalji. ;>
algoritmi.92 kale,
>> >> Nisam siguran da nisam izmislio toplu vodu. Ovo koristim negde od >> >> '89. i zasad je bilo sasvim dovoljno da otera one koji bi da >> >> čačkaju po programu. >> 'Ajde onda, objasni nevernim Tomama koliki je efekat ovakvih kriptova. Pazi, ako je njegov sistem izdržao 10 godina, to ne znači da je dobar. Sistem bez zaštite je savršeno siguran ako niko neće da ga napada. To je sasvim druga tema.
algoritmi.93 kale,
>> >> Tvoj logon.exe samo pišti, a ne daje broj na izlazu. >> žini mi se da je taj logon.exe dovoljno blizu realne situacije. Takva >> provera se recimo nalazi na ulazu u program. Ti nemaš pojma koji je broj >> rezultat koje ulazne lozinke, a treba da provališ u sistem. Ajde da ponovim još jednom: smisao funkcije za transformaciju lozinke je da se onome ko je došao do njenih rezultata maksimalno oteža nalaženje lozinke koja će da prođe. Ako možeš da sakriješ rezultate transformacija korisničkih lozinki, mogao si umesto rezultata transformacije da sakriješ originalne lozinke. Korišćenjem funkcije si samo smanjio potreban broj nasumičnih pokušaja da bi se provalilo u sistem, dakle oslabio si zaštitu. >> >> Naravno, zadaj i neki broj za koji treba naći password koji će da >> >> prođe. >> Kad se zna broj, nije problem. Problem je što (zasad) ne znaš broj. Znači, zaštita tvog sistema se sastoji u tome što se ne zna gde su brojevi? Jedna od najslabijih zaštita, takođe neprimenljiva na nekim sistemima. žovek nije pitao da li i gde da sakrije lozinke i algoritam, nego je tražio funkciju.
algoritmi.94 kale,
>> Stvar je sledeća... Ljudi od kojih će se, u jednom trenutku >> njihovog srećnog programerskog života, tražiti da naprave algoritam za >> sigurno čuvanje šifara, bi trebalo da su dovoljno inteligentni da pronađu >> dovoljno siguran algoritam, ili da su jednostavno u stanju da od ponuđenih >> algoritama, nađu onaj sa najmanjom verovatnoćom za "provalu". Trebali da budu dovoljno inteligentni??? žovek je bio dovoljno inteligentan da zatraži savet. Najbolje mu možemo pomoći ako mu damo dobar algoritam ili bar ukažemo na slabosti nekog algoritma. Najviše mu možemo odmoći ako ga uverimo da je neki loš sistem dobar. Pokazalo se da se u ovoj oblasti lako desi da ono što deluje kao sigurna zaštita ispadne "mačji kašalj". Ja na osnovu (samo) ovih stvari ne bih sudio o nečijoj inteligenciji. Od ponuđenih algoritama za sada znamo da je jedan slab, a za drugi (CRC) još ne znamo kakav je. Kad bih ja imao potrebu za takvom funkcijom, ja bih se isto prvo raspitao za algoritam, probao da nađem neku funkciju koja se već koristi na ozbiljnim OS. Ako je ne bih našao gotovu, smislio bih svoju i pitao druge šta misle o njoj.
algoritmi.95 snemcev,
>> Recimo, onaj algoritam što je poslao dr.grba daje istu vrednost za >> "dr.grba" i za "fs.grba" Fora je u tome da prvo treba da provališ da je u pitanju taj algoritam, pa tek onda možeš da konstatuješ za koje lozinke daje iste izlazne brojeve. Još jednom ponavljam: "provali" onaj logon.exe što ga je Grba poslao, pa onda možemo da diskutujemo o tome da li je takva zaštita dovoljna da znatiželjnike zadrži na odstojanju.
algoritmi.96 snemcev,
>> Ako je u logon.exe korišćen onaj algoritam, moraš nam dati >> koji je broj zapamćen, to jest za koji broj da tražimo šifru. >> Jer, cilj je bio da se iz otiska ne može naći šifra koja će >> dati takav otisak! Ne, nemoram. Ni uz jedan paket nisi dobio papirić na kome piše "Ulazna lozinka kao rezultat transformacije daje broj 908213-3126". Btw, logon.exe je provaljen (svaka čast). Oćel' ovo pomoći? ;Name CRC32.ASM ;Author (C) 1986 Gary S. Brown. No restrictions apply. ;1992.04.19 Rewrite - Bruce Gavin Translated C -> ASM. ;1992.11.3 Rewrite - Terry Carmen re-wrote to be callable ; from Clipper S'87 or 5.01 ; CRC32 takes a single argument as a string, and returns ; the CRC32 to Clipper as an 8 digit character string ; Returns NIL if called with incorrect arguments or an empty string ; CRC32 polynomial is edb88320h, and will produce identical CRCs as PKIZP
algoritmi.97 prvul,
ŮĂ> pretpostaviti da će doći i do kopije programa. A onda treba par ŮĂ> desetina minuta dibagovanja i eto algoritma. ŮKoliko pari desetina? Pre će naći proveru password-a pa je isključiti Ůnego što će naći algoritam, ali kad se to uvrne 2-3 puta može manijak Ůi da odustane. Osim toga da raspravljamo o apsolutnoj zaštiti ili da Ůse odmah složimo da je nemoguća. Ů▄▄ Pišem o razbijanju šifri na BBS-u. Dakle, šta će hakeru razbijena verzija BBS softvera? Da je podmetne na ciljni BBS? ;) A par desetina je deset minuta do dva sata, što i nije strašno... I kada se "registruje" neki program, poželjno je ne samo napraviti "razbijenu" verziju, već i naći algoritam za registraciju. Ipak sam mirniji kada ne moram da mislim na to da li mi je promakla još neka provera zaštite koja se ko zna kada manifestuje... zato kada god mogu nađem reg. broj i registrujem program na "legalan" način.
algoritmi.98 prvul,
Ů>> desetina minuta dibagovanja i eto algoritma. ŮEvo, pokušaj da se proslaviš i razbij ovu lozinku. Korišćen je tačno Ůonaj opisani algoritam iz moje poruke. Ů▄▄ :) Ne verujem da bih se proslavio razbijajući fajl od 4k ;) A ono sa objavljivanjem algoritma nisam ja smislio već je to u krugovima koji se bave kriptografijom opšte prihvaćena stvar. Još jednom, nisam tvrdio da lozinka može da se provali, već da sigurnost zaštite nije mnogo povećana time što je algoritam sakriven, jer se on može (a uz odgovarajuću motivaciju) "izvući" iz koda, pa zaštita koja se zasniva na tajnosti algoritma nije preporučljiva. Dobro, za BBS-ove ima jedna olakšavajuća okolnost: onaj ko zna da "izvuče" neki komplikovan algoritam iz koda verovatno ima pametnija posla nego što je to provaljivanje šifri na nekom tamo BBS-u. Na primer, sedeći non-stop u chatu sam pročitao masu šifara a razne BBS-ove koje ljudi jedni drugima kažu jer misle da su sami... i nikada nisam imao želju da ma koju zapamtim - šta će mi... a to je ipak lakše nego provaljivati program...
algoritmi.99 debelijencija,
!=?> Ovo me podseća na algoritme, koje koriste simulatori realnih !=?> (prirodnih) procesa, tipa neke igre (fudbal menadžeri)... Nekada davno, ja i burazer smo planirali tako nešto... :) Ako znaš nešto više o tome, ili imaš nešto i napismeno, bio bih ti vrlo zahvalan da me uputiš... žisto da, možda, ostvarim tu davnu ideju. Ala sam nostalgičan! :)
algoritmi.100 dr.grba,
>> žovek je tražio savet, i dobio loš savet. Sad ti kažeš da >> savetodavac nije hteo da mu kaže rešenje nego da ga inspiriše. I dalje mislim da je rešenje dobro NA ODREĐENOM NIVOU.... >> dobar i da ga koriste ubeđeni u njegovu pouzdanost. Nije nam cilj >> da neko nauči nešto loše, a možda i da pretrpi štetu zbog neznanja, >> zar ne? Ne vidim moguću štetu, osim one da se ova zaštita ugradi na neprikladnom mestu. Kakav algoritam ti predlažeš? 'Ajde da ga vidimo.
algoritmi.101 dr.grba,
>> Tvoj logon.exe samo pišti, a ne daje broj na izlazu. Ajde napravi >> (ne bilo ti zapoveđeno) verziju koja umesto pištanja ispiše broj Moj (nije moj, ali 'aj'cad) logon.exe radi onako kako bi trebalo da radi program za lozinku. Da je na nekoj komunikacionoj vezi, posle trećeg promašaja korisnik bi bio izbačen sa veze. >> izvršava da bi moj program mogao da ga pozove (da ne moram da >> kucam). Nemoj da mi postavljaš domaći tipa "otkrij algoritam" jer >> to nije ono što je traženo. Zadrži se na linearnoj transformaciji >> k1*z1+k2*z2+... (gde su k-ovi Ne, algoritam nije diran. Upravo je onaj koji ti opisuješ. Da ti pomognem, max lozinka je 20 chars (: >> pošaljem sors programa koji će to da razbije "in no time". >> Naravno, zadaj i neki broj za koji treba naći password koji će da prođe. Ove muzičke želje mi nisu jasne. Radi se o tvojoj nameri da razbiješ program tako da nađeš šifru koja je ugrađena u source programa. Dobio si tačno onaj program koji stoji na mom disku. Kad ga razbiješ, ako ti uspe, sa zadovoljstvom ću priznati da si majstor. Lozinku slobodno objavi ovde.
algoritmi.102 dr.grba,
>> Neka lozinka ima najviše 8 znakova (malih i velikih slova i >> cifara). Broj lozinki je 62ž8 što je preko 2 E 14. Broj koji je >> rezultat transformacije je >= 36 * asc("0") = 1728 i <= 36 * >> asc("z") = 4392. Pošto 'Ajde da uzmemo 64 umesto 62: 64**8 = (2**6)**8, a to je 2**48, a ne 2**14, pošto ovo nije (2**6) * (2**8), što bi stvarno bilo 2**14 Gadan previd, a? Izvini na izlišnimzagradama, ovako je preglednije, kao i ** umesto ž P.S. 2**48 je.... koliko ono beše?... A, da, 2.81474977*(10**14) žas posla za razbiti (:
algoritmi.103 dr.grba,
>> algoritam što je poslao dr.grba daje istu vrednost za "dr.grba" i >> za "fs.grba" (napamet sam računao, nadam se da sam pogodio). Nisam proverava, nije ni bitno. Jasno je da algoritam ne daje jednoznačne rezultate. Naravno, ako se lozinka koja prođe pronađe, priznajem i nju.
algoritmi.104 dr.grba,
>> 1*K1+2*K2+3*K3+4*K4 = 706 (2C2h), gde su K1 do K4 ASCII kodovi Da, tačno je. >> p.s. Program je bio PKLITE-ovan, Da, tačno je. >> pisan u nekakvom Borlandovom paketu (paskalu?) Turbo Pascal 6.0 (: >> p.p.s. Nešto posle 12h sam završio poziv Sezama, >> u 12:40 pišem ovu poruku, ukupno vreme do nalaženja prve lozinke je Skidam kapu i priznajem poraz. Razbi čovek program k'o Panta pitu. P.S. A valjanost programa branim i dalje, shodno potrebi. I shvatite već jednom šta sam hteo time da kažem. P.P.S. 'Ajde da bar nešto da svi izvučemo pouku. Da li si u razbijanju koristio znanje o algoritmu transformacije? Da li si išao redom od dužine 1, pa 2, pa 3, pa našao na 4 (lozinka zbilja ima 4 znaka, ali nije nijedna od navedenih; baš bi bilo zanimljivo istražiti koliko ih ima, kao išta bi se desilo da je funkcija case sensitive)? Koliko bi razbijač radio da je lozinka zbilja bila duga 20 karaktera? Pozdrav, Grba
algoritmi.105 dr.grba,
>> Stvar je sledeća... Ljudi od kojih će se, u jednom trenutku >> njihovog srećnog programerskog života, tražiti da naprave algoritam >> za sigurno čuvanje šifara, bi trebalo da su dovoljno inteligentni >> da pronađu dovoljno siguran algoritam, ili da su jednostavno u >> stanju da od ponuđenih algoritama, nađu onaj sa najmanjom >> verovatnoćom za "provalu". Valjda imam poznanike matematičare od kojih bih tražio da mi naprave valjan matematički model.
algoritmi.106 dr.grba,
>> Jer, cilj je bio da se iz otiska ne može naći šifra koja će >> dati takav otisak! Nije tačno.
algoritmi.107 m.hristodulo,
>> Mislim da cemo najlakse to naci ako neko izvadi >> odgovarajuci deo koda iz source-a za neki PD >> Unix. 386BSD je PD Unix, dakle besplatan je, ali se zabranjuje njegov izvoz izvan granica USA, zapravo njegov algoritam za kriptovanje lozinki. Ipak, u BG postoji jedan takav BSD, ali ne bih smeo reci kod koga.
algoritmi.108 spantic,
> 386BSD je PD Unix, dakle besplatan je, ali > se zabranjuje njegov izvoz izvan granica USA, Zanimljivo je da se ni na samom Internetu, na kome teoretski važe američka pravila igre to niko ne poštuje. Podršku za mnoge zabranjene stvari iz Amerike se može naći na dosta mesta.
algoritmi.109 peca.st,
!-> Ne, nemoram. Ni uz jedan paket nisi dobio !-> papirić na kome piše "Ulazna lozinka kao !-> rezultat transformacije daje broj !-> 908213-3126". Meni se sve čini da ti ne znaš o čemu se diskutuje ovde. :( Ako ne mogu da dođem do rezultata transformacije, onda transformacija nema efekta, čak ima kontra efekat! Jer, ako se rezultat tako dobro sakrije da ne mogu da dođem do njega, zašto onda original nije tako dobro sakriven? Još jednom: poenta je da _NIKO_ ko zna rezultat transformacije, pa čak i onaj ko zna algoritam koji je korišćen, ne može lako da dođe do originala koji daje isti takav rezultat. Što se tiče provaljivanja logon.exe on je već provaljen i bez rezultata transformacije, verovatno tako što je u samom programu nađen taj rezultat. Ti si u logon.exe morao da zapamtiš rezultat pa da ga porediš kasnije, tako da si nam ipak dao ono što smo tražili. :) A kako se ispostavilo da je traženi original sastavljen samo od četiri karaktera, čak nije bilo potrebno znati rezultat, moglo se ispitati i "buldožer" metodom. Peđa.
algoritmi.110 peca.st,
!-> Nije tačno. Ajd mi argumentuj zašto nije tačno. Ja sam argumentovao zašto mislim da je tako, pa bih voleo da čujem i suprotnu argumentaciju. Peđa.
algoritmi.111 peca.st,
!-> Nisam proverava, nije ni bitno. Jasno je !-> da algoritam ne daje jednoznačne !-> rezultate. Naravno, ako se lozinka koja !-> prođe pronađe, priznajem i nju. Algoritam koji daje jednoznačne rezultate imao bi i inverzan algoritam, tako da ne bi imao smisla. Međutim, problem ovog algoritma je što je procenat broja mogućih lozinki koji prolaze preveliki! Primerom koji sam naveo hteo sam da pokažem da algoritam daje isti rezultat za neke vrlo slične šifre, koje u sebi ne sadrže nikakve "egzotične" znake. Recimo CRC algoritam daje iste rezultate najčešće za neke totalno "leve" znake (nešto nalik na đubre) koji nemaju veze sa onim pravim (osim što daje isti otisak :), a opet najčešće takvi "levi" znaci uopšte nisu dozvoljeni u šifri, pa bi se uslovno moglo reći da je CRC algoritam "jednoznačan" a (naravno) ne postoji inverzan algoritam. Hoću da kažem da ćeš teško naći dva stringa sastavljena od (recimo) samo malih slova i tačke koji posle CRCa daju isti otisak. Postoji "ogroman" broj stringova (sastavljenih od malih slova i tačke) koji posle sume a(i)*i daju isti otisak. Peđa.
algoritmi.112 zolika,
>> If a) Then >> Zolika je pomenuo da mu treba nešto što će od LOZINKE (koja ima >> recimo n karaktera) napraviti 4bajtni "otisak". To znači, da kad >> neko unese lozinku, ona prolazi kroz isti taj algoritam, tako dobijeni >> otisak se proverava sa originalnim (koji je verovatno na disku) i ako >> je provera prošla Ok, korisnik lozinke se pušta dalje. Svi ovde pomenuti Tačno! Dobro si razumeo. Treba mi neka transformacija za lozinku na... da ne pričam, već i vrapci znaju za šta.
algoritmi.113 zolika,
>> Upravo je fora da se zolika sam namuči (more tu uopšte nema muke), >> i da niko drugi ne zna algoritam... Hm, pošto poruke čitam "na preskok" (zbog tel. računa) - OK, nema problema, meni nije teško da nažvrljam neku petljicu punu XORovanja, ORovanja i ostalih logičkih zavrzlama eda bi od ASCII lozinke napravio nekih 2-4 bajtova. No, drugi princip programiranja koji smo naučili na prvoj godini studija bio je: 2. NE IZMIŠLJATI TOPLU VODU. Ako neko zna algoritam, a neće da mi kaže - u redu, ne mogu ga puškom natera- ti. Ali, mislio sam da bi možda bolje bilo da se malo manje mučim tu, a malo više na nekom drugom mestu. P.S.: Prvi princip programiranja koji smo naučili bio je: 2. KORISNIK PROGRAMA JE STANDARDNI IDIOT. (zainteresovanima nudim na uvid beleške iz predmeta "Uvod u programiranje" sa prve godine studija na informatičkom smeru PMF-a u Novom Sadu). Da bi zabava bila potpuna - profesor koji nam je to predavao je moj g-din mentor - kod njega rfadim diplomski...
algoritmi.114 pedjak,
> ;Name CRC32.ASM Hajde, pošalji.
algoritmi.115 niklaus,
(:> Hm, gde ima da se nađe taj PD unix? Na kioscima "Borbe"! (; Nego ozbiljno - pitaj ljude sa FFSa... (:niklaus:)
algoritmi.116 niklaus,
(:> Trebali da budu dovoljno inteligentni??? žovek je bio (:> dovoljno inteligentan da zatraži savet. Najbolje mu možemo (:> pomoći ako mu damo dobar Ma ništa ja njemu ne poričem. Inteligenciju i njegov integritet valjanog programera ponajmanje... Jednostavno je dobio okvirni algoritam i odgovarajuća objašnjenja vezano za tebu, i dalje će sigurno znati sam... Problem je što mi Srbi o'ma' se poprimamo i tražimo mane u nečijoj ideji (konkretno u dr.grbinoj formuli za izradu CRCa). Zato smo ga i tupili dobrih 50 poruka. (;imam blagi osećaj da ima još) (:niklaus:)
algoritmi.117 niklaus,
(:> Valjda imam poznanike matematičare od kojih bih tražio da mi (:> naprave valjan matematički model. Ma samo reci... (: (mada nisi imao mene na umu) (:niklaus:)
algoritmi.118 niklaus,
(:>! =?> Ovo me podseća na algoritme, koje koriste simulatori (:>! realnih =?> (prirodnih) procesa, tipa neke igre (fudbal (:> menadžeri)... (:> (:> Nekada davno, ja i burazer smo planirali tako nešto... :) Ma šta je problem? Najpre definišeš sve parametre, koji utiču na izlaznu vrednost nekog procesa (konkretno rezultat utakNice), i to je poželjno što više takvih para- metara zbog veće realnosti i manje verovatnoće da ti se nešto "učini poznatim". Nakon toga sedneš i odrediš odnose (verovatnoće) svakog procesa pojedinačno, turiš u jednadžbu i eto - Smrt fašizmu, sloboda:rad 1:0! (:niklaus:)
algoritmi.119 dr.grba,
>> ! -> Nije tačno. >> >> Ajd mi argumentuj zašto nije tačno. >> Ja sam argumentovao zašto mislim da je tako, >> pa bih voleo da čujem i suprotnu argumentaciju. Tačno je ako pričamo o PGP algoritmu ili CRC... U predmetnom logon.exe se nije pričalo o takvoj transformaciji, već o predmetnosti i kvalitetu zaštite tim algoritmom. Banalna stvar nas dovede u veom žučnu raspravu. Valjda nešto i naučimo usput...
algoritmi.120 kale,
>> Fora je u tome da prvo treba da provališ da je u pitanju taj algoritam, >> pa tek onda možeš da konstatuješ za koje lozinke daje iste izlazne >> brojeve. Kada se procenjuje kvalitet nekog metoda šifrovanja, UVEK se pretpostavlja da razbijač razbija baš taj sistem. Zašto? Zato što se procenjuje kvalitet metoda šifrovanja, a ne razbijača, te se pretpostavlja da će sistem da napadne (i) najbolji. Pod tom pretpostavkom se procenjuje najveće potrebno računarsko vreme da se šifra razbije. Argumenata tipa "niko ovoga neće da se seti" nema u ozbiljnim analizama. Pretpostavlja se da razbijač napada baš dati metod šifrovanja čiji se kvalitet procenjuje.
algoritmi.121 kale,
>> Ne, nemoram. Ni uz jedan paket nisi dobio papirić na kome piše "Ulazna >> lozinka kao rezultat transformacije daje broj 908213-3126". Naprotiv, u vrlo ozbiljnim paketima kao što su operativni sistemi velikih računara dobiješ knjižurine u kojima piše i gde su rezultati transformacije. Ni jedan komercijalni program/paket ne može računati na tajnost mesta gde se ovi rezultati čuvaju; jednostavno, promeniš lozinku i negde se neki fajl promeni. Vidiš koji i gotovo je sa tajnošću mesta gde se to čuva.
algoritmi.122 kale,
>> Ne vidim moguću štetu, osim one da se ova zaštita ugradi na neprikladnom >> mestu. Kakav algoritam ti predlažeš? 'Ajde da ga vidimo. A vidiš li moguću štetu na sistemu bez ikakve zaštite osim ako nije na neprikladnom mestu? ;>>> Najbolje što mi trenutno pada na pamet je CRC koga bih po izračunavanju pregazio (XOR) originalnim password-om. Ovaj XOR zato što su CRC polinomi pravljeni u druge svrhe (za utvrđivanje greške u podacima) i bojim se (ne tvrdim) da se za broj koji bi bio čisti CRC jedan od odgovarajućih passworda može brzo generisati. Posle XOR na sistemu ne bi bilo ni originalnog password-a ni iz njega dobijenog CRC-a. To mi izgleda pouzdano. Pozdrav!
algoritmi.123 kale,
>> Moj (nije moj, ali 'aj'cad) logon.exe radi onako kako bi trebalo da >> radi program za lozinku. Da je na nekoj komunikacionoj vezi, posle trećeg >> promašaja korisnik bi bio izbačen sa veze. Izvinjavam se autoru i tebi zbog greške, nije bilo namerno. Mi ovde ispitujemo algoritam koji treba da onemogući/oteža generisanje lozinke na osnovu rezultata njenog kodiranja. Rasprava o ostalim metodima i merama zaštite (sakrivanje algoritma, onemogućavanje logovanja posle par neuspešnih pokušaja,...) svakako ima smisla, ali je veoma široka tema. >> >> Naravno, zadaj i neki broj za koji treba naći password koji će da prođe. >> Ove muzičke želje mi nisu jasne. Radi se o tvojoj nameri da razbiješ >> program tako da nađeš šifru koja je ugrađena u source programa. Dobio >> si tačno onaj program koji stoji na mom disku. Reč je o programu koji treba da generiše broj na osnovu password-a. Potom se tako dobijeni broj testira sa zapamćenim brojem za odgovarajućeg korisnika. Da bi to bilo moguće, neophodno je da se na sistemu za svakog korisnika (i njegovu lozinku) čuva odgovarajući broj. Brojevi dobijeni funkcijom transformacije postoje na sistemu. Moja "muzička želja" je sasvim normalan zahtev. logon.exe ne daje broj na izlazu i neupotrebljiv je za sisteme koji imaju više od jednog korisnika.
algoritmi.124 kale,
>> >> Broj lozinki je 62^8 što je preko 2 E 14. >> 'Ajde da uzmemo 64 umesto 62: >> 64**8 = (2**6)**8, a to je 2**48, a ne 2**14, pošto ovo nije >> (2**6) * (2**8), što bi stvarno bilo 2**14 >> Gadan previd, a? Stvarno si me neprijatno iznenadio. Notacija "mantisa e eksponent" je uobičajena za "floating point" brojeve (BASIC, Pascal, FORTRAN, C,...). Operator stepenovanja ("^" ili "**") uopšte ne postoji u standardima Pascala i C-a. Bilo kako bilo, podrazumevao sam da svi koji čitaju moju poruku znaju da protumače ono što piše, pa ovo je konferencija PC.PROG, zar ne? Videvši da ti ne znaš, pretpostavio sam da si ili vrlo mlad ili da koristiš računar za obradu teksta, grafike ili nešto drugo što nema veze sa programiranjem. Glavno iznenađenje dolazi kad sam ti pogledao resume. Inženjer informatike, pa još radi na EI-Bull mastodontu kao "sysop"! Zaista me zanima (nije mi želja da te uvredim) u kojoj školi si postao inženjer informatike? Koje programske jezike ste tamo učili? Ja ne znam Clipper, ali mi se čini da ima "floating point" brojeve. Kako se pišu? Je li moguće da se u nekom programskom jeziku piše 2*10**14 i da ne sme pisati 2e14 (eventualno 2.0e14)? >> Izvini na izlišnimzagradama, ovako je preglednije, kao i ** umesto ž Ja sam tolerantan prema formi, ne smeta mi ni višak zagrada ni manjak blankova. >> P.S. 2**48 je.... koliko ono beše?... A, da, 2.81474977*(10**14) >> žas posla za razbiti (: Nije tačno! 2**48=281474976710656 Specijalno za tebe: 62**8=218340105584896 Za ostale ću i dalje da pišem 62^8 je preko 2 E 14, da ne mučim ljude brojanjem cifara. Toliki broj password-a je skoro nemoguće isprobati. Srećom po razbijače ti si preporučio funkciju koja ovaj broj degradira na manje od 3000.
algoritmi.125 kale,
>> Skidam kapu i priznajem poraz. Razbi čovek program k'o Panta pitu. >> P.S. A valjanost programa branim i dalje, shodno potrebi. I >> shvatite već jednom šta sam hteo time da kažem. :))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) Shvatio sam, konačno! Pa ti se zapravo šališ! >> Koliko bi razbijač radio da je lozinka zbilja bila duga 20 karaktera? 1*a(1)+2*a(2)+3*a(3)+...+20*a(20)=x(20) Minimalni zbir za prvih k ASCII kodova je m(k)=k*(k+1)/2*MINASCII, maksimalni zbir za prvih k ASCII kodova je M(k)=k*(k+1)/2*MAXASCII, gde su: a(i) ASCII kodovi prvog, drugog,..., dvadesetog znaka lozinke, x(i) broj dobijen transformacijom prvih i znakova lozinke, MINASCII najmanji ASCII kod dozvoljen u lozinci, MAXASCII najveći ASCII kod dozvoljen u lozinci. Biranje počneš od ASCII koda uz najveći koeficijent (ovde 20, znači a(20) ). Moraš izabrati takav znak a(20), odnosno u opštem slučaju a(i) da važi sledeća nejednakost: ( x(i) - m(i-1) ) / i <= a(i) <= ( x(i) - M(i) ) / i, važi za i=2, 3, 4, ... i na kraju a(1)=x(1) Jedan od načina izbora je da izabereš minimalnu dozvoljenu vrednost iz skupa vrednosti znaka. Ako kasnije ispadne da bi neki a(j) gde je j<i morao da uzme nedozvoljenu vrednost da bi jednačina bila zadovoljena, onda povećavaš a(j+1) na najbližu veću dozvoljenu vrednost dok ne dobiješ priliku da za a(j) izabereš dozvoljenu vrednost. Eventualno bi ovde bila potrebna i rekurzija (promena a(j+2), a(j+3),...) što zavisi od izbora dozvoljenih vrednosti za znake lozinke. Za lozinku od 20 slova ti treba _otprilike_ 5 puta više vremena za razbijanje nego za lozinku od 4 slova.
algoritmi.126 kale,
>> Valjda imam poznanike matematičare od kojih bih tražio da mi naprave >> valjan matematički model. Baš si drug! Tvoje znanje je dobro za druge, a kad bi tebi trebalo ti bi pitao nekog ko zna.
algoritmi.127 zolika,
>> žovek nije pitao da li i gde da sakrije lozinke i algoritam, nego je >> tražio funkciju. Sve mi se čini, Kale, da si ti jedan od retkih koji me razumeju, al', eto, ne dâ mi se da dođem do preko mi potrebne funkcije... :-)))))
algoritmi.128 zolika,
>> Stvar je sledeća... Ljudi od kojih će se, u jednom trenutku njihovog >> srećnog programerskog života, tražiti da naprave algoritam za sigurno >> čuvanje šifara, bi trebalo da su dovoljno inteligentni da pronađu >> dovoljno siguran algoritam, ili da su jednostavno u stanju da od >> ponuđenih algoritama, nađu onaj sa najmanjom verovatnoćom za "provalu". E, moj Virte :-))) Pa ono što radim je UPRAVO pokušaj da od ponuđenih algoritama izaberem neki koji mi odgovara... Problem je samo što ponuda i nije nešto naročito (molim dr.Grbu da se ne ljuti, zaista sam zahvalan na predlogu rešenja problema).
algoritmi.129 niklaus,
(:> ne dâ mi se da dođem do preko mi potrebne funkcije... :-))))) Koliko se ja sećam, pošto (na žalost) ne nalazim na HDu dotični program, a sećam se da je postojala zbirka korisnih programčića za C zvana C Snippets. Beće na FFSu. Evo baš ću da zovem da uzmem ponovo (i da ti uštedim trud)... (:niklaus:)
algoritmi.130 janko,
> "egzotične" znake. Recimo CRC algoritam daje iste > rezultate najčešće za neke totalno "leve" znake (nešto > nalik na đubre) koji nemaju veze sa onim pravim (osim što > daje isti otisak :), a opet najčešće takvi "levi" znaci > uopšte nisu dozvoljeni u šifri, pa bi se uslovno moglo > reći da je CRC algoritam "jednoznačan" a (naravno) ne == > postoji inverzan algoritam. Hoću da kažem da ćeš teško ================ > naći dva stringa sastavljena od (recimo) samo malih slova > i tačke koji posle CRCa daju isti otisak. Koliko se ja razumem, postoji i trivijalan je, čak. Oni koji znaju teoriju koja leži iza CRC, znaju i zašto.
algoritmi.131 janko,
> pravljeni u druge svrhe (za utvrđivanje greške u podacima) > i bojim se (ne tvrdim) da se za broj koji bi bio čisti CRC > jedan od odgovarajućih passworda može brzo generisati. Dobro razmišljaš. Stvarno je lako generisati "unazad" nešto što će dati isti CRC. > Posle XOR na sistemu ne bi bilo ni > originalnog password-a ni iz njega dobijenog CRC-a. To mi > izgleda pouzdano. Po meni, vrlo je nepouzdano. Ali, opet, čini mi se da umeš da razmišljaš i da si na pravom putu... ;>
algoritmi.132 kale,
Ovo nije bio reply na moju poruku.
algoritmi.133 peca.st,
!-> Tačno je ako pričamo o PGP algoritmu ili CRC... Tačno je ako pričamo o onome što je zolika hteo! Ako ne pričamo o tome - čemu sve ovo? Njemu tako nećemo pomoći, a samo će utrošiti vreme i prostor na Sezamovom disku. ;) !-> Banalna stvar nas dovede u veom žučnu !-> raspravu. Valjda nešto i naučimo usput... Najvažnije je da zolika dobije algoritam koji mu treba... Peđa.
algoritmi.134 niklaus,
(:> E, moj Virte :-))) ...... E, sad ste me stvarno naljutili! (; Evo programčića za proračun 16-bitnog CRCa... (Šaljem ga na Pascalu, jer je najsličniji Moduli-2, kojim se zolika služi za diplomski. Šta ćete - zaboravih jezik, koji sam sâm osmislio) const POLY=$8408; var sifra : string; function crc16( data_p:string; length:word ): word; var i, j : byte; data, crc : word; dummy : word; begin CRC := $ffff; if ( length=0 ) then begin crc16 := CRC; exit; end; j := 0; repeat dummy := $ff and ord(data_pŠjĆ); inc( j ); for i:=0 to 7 do begin data := $ff and ord( data_pŠjĆ ); inc( i ); data := data shr 1; if ( ((CRC and $0001) xor (data and $0001)) <> 0 ) then CRC := (CRC shr 1) xor POLY else CRC := CRC shr 1; end; dec( length ); until (length=0); CRC := not( CRC ); data := CRC; CRC := (CRC shl 8) or ((data shl 8) and $ff); crc16 := CRC; end; begin repeat write('Unesi sifru->'); readln( sifra ); writeln('------------>',crc16( sifra, length(sifra) )); until (sifra=''); end. Ne znam šta će zoliki mentoL na sve ovo da kaže, ali stvar radi... TOLIKO OD MENE! (:niklaus:) ps Nadam se da niko neće tražiti CRC-32... (:
algoritmi.135 snemcev,
>> Ako ne mogu da dođem do rezultata transformacije, onda transformacija >> nema efekta, čak ima kontra efekat! Molim te, navedi mi jedan komercijalni paket koji kaže "rezultat transformacije ulazne lozinke je to_i_to". U slučaju da konkretan primer nemaš, diskusiju po ovom pitanju smatram završenom.
algoritmi.136 snemcev,
>> Ako neko zna algoritam, a neće da mi kaže - u redu, ne mogu ga puškom >> naterati. Da li bi ti pomogao crc32.asm?
algoritmi.137 kale,
>> > Posle XOR na sistemu ne bi bilo ni >> > originalnog password-a ni iz njega dobijenog CRC-a. To mi >> > izgleda pouzdano. >> Po meni, vrlo je nepouzdano. Složiću se da mi je ideja sa XOR naivna. Pošto je CRC n-torka dobijena pomoću XOR određenih grupa bita originala, još jedan XOR sa originalom ne daje nešto kvalitetno novo, to ostaje n-torka XOR na određenim grupama bita.
algoritmi.138 janko,
>>> > Posle XOR na sistemu ne bi bilo ni >>> > originalnog password-a ni iz njega dobijenog CRC-a. >>> > To mi izgleda pouzdano. > >>> Po meni, vrlo je nepouzdano. > > Složiću se da mi je ideja sa XOR naivna. Pošto je CRC > n-torka dobijena pomoću XOR određenih grupa bita > originala, još jedan XOR sa originalom ne daje nešto > kvalitetno novo, to ostaje n-torka XOR na određenim > grupama bita. Tačno. Ono što još nismo objasnili drugima je -- zašto je tako lako napraviti unazad nešto što daje isti CRC. Pominjao sam, treba znati malo matematike koja leži iza svega. ;) Posmatrajmo jednačinu A / B = C sa ostatkom D. Ako nam neko da B i D, potpuno je trivijalno naći neko A za koje važi gornja jednakost, za C koje možemo da biramo sami. B je, u ovom slučaju, tzv. generišući polinom, D je onaj broj koji se obično zove CRC, a A je poruka, u ovom slučaju šifra. Varijacija koju si ti predložio se opet svodi na A / B = C sa ostatkom D, gde znamo brojeve B i A + D. Toliko, među nama, apsolventima elektrotehnike, smer računarska tehnika. ;)
algoritmi.139 peca.st,
!-> Molim te, navedi mi jedan komercijalni !-> paket koji kaže "rezultat transformacije !-> ulazne lozinke je to_i_to". U slučaju da !-> konkretan primer nemaš, diskusiju po ovom !-> pitanju smatram završenom. Ko ovde govori o "komercijalnim paketima i njihovim ulaznim šiframa" ? Ovde govorimo o BBS softveru! A ti to nisi shvatio, nego si krenuo u pogrešnom pravcu. No, sve i da govorimo o komercijalnom paketu, on negde mora sačuvati "rezultat transformacije ulazne lozinke" pa ga je moguće i naći, ako ga on već sam ne nudi. Ako ga nije moguće naći (što je apsurdno) onda transformacija ima pomenuti kontra efekat. Dalje, kod tih komercijalnih paketa, onaj ko zna algoritam i rezultat transformacije dobijen korišćenjem tog algoritma teško će uspeti da otkrije neku šifru koja daje isti rezultat, dok će, ako je korišćeni algoritam ovaj tvoj, (kao što si i sam rekao) vrlo lako uspeti da pronađe šifru koja "pasuje". "Diskusiju po ovom pitanju smatram završenom." Peđa.
algoritmi.140 peca.st,
Teorema 1: ---------- (1 and 0) = 0; (1 and 1) = 1; $FF = 1111 1111; => ($FF and $xy) = $xy Kraj teoreme. !-> dummy := $ff and ord(data_pŠjĆ); !-> data := $ff and ord( data_pŠjĆ ); Koja je svrha ovih redova osim da uspore malo čitav algoritam? Osim toga, čemu služi dummy, kad se nigde drugo ne pominje? !-> for i:=0 to 7 do !-> inc( i ); !-> end; Promena vrednosti brojača for ciklusa unutar ciklusa? Zar se to koristi u jednom algoritmu koji pretenduje da bude koristan i ozbiljan? Plus što ovo Inc (i) nije ni pod kakvim uslovom, pa je ladno moglo for i := 0 to 3 !-> CRC := (CRC shl 8) or ((data shl 8) and $ff); Posle ovakvog reda, prvih 8 bitova će sigurno biti 0! (broj kad se šiftuje levo za osam mesta pripisaće mu se sa desna osam nula. kad dva takva broja ORuješ, dobićeš opet broj za osam nula) Znači, rezultat će praktično biti osmobitni. Ako si već pokušavao da smisliš algoritam kojim ćeš nas zavarati i navesti da poverujemo da je CRC, mogao si da smisliš nešto barem malo pametnije od ovoga. Ovo što sam komentarisao su, moram tako da se izrazim, glupe stvari koje bodu oči, svako će to primetiti. Ovo su samo najočiglednije greške, ostale nisam ni pokušavao da pronađem iako ih sigurno ima. Glavna zagonetka mi je šta si hteo da postigneš ovom porukom? !-> Ne znam šta će zoliki mentoL na sve ovo !-> da kaže, ali stvar radi... Kad bi ovo video zolikin mentor, verovatno bi ga odmah oborio. Stvar radi - tu se apsolutno slažemo - jer ni jedna greška pri kompajliranju nije prijavljena! Program je stvarno HAOS. !-> TOLIKO OD MENE! Puno ti se zahvaljujem u zolikino i moje ime, kao i u ime svih generacija koje će videti ovu glupost. !-> ps Nadam se da niko neće tražiti CRC-32... (: Pretpostavljam da se sastoji od toga da tamo gde sad piše word treba da piše longint, jel tako? No, ja ne umem da promenim program tako, pa bih te molio da to ti učiniš. Peđa. P.S. Ovo bi trebalo da je konferencija sa najmanje šuma.
algoritmi.141 ganta,
Evo dva programa koje mi je poslao drug iz CA. Prevedite ih posebno i nazovite prvog 'pera', a drugog 'mika', ili kako god hocete. Pera sifrira, tako sto cita standard input i pise standard output, a ima samo jedan argument - broj od 1 do 2000000000. Taj broj je sifra. Mika desifrira, sa istim brojem. Na primer, imate file x.txt koga treba sifrirati: pera 33456 < x.txt > x1.txt x1.txt je sifrirani file. Da ga procitate, uradite mika 33456 < x1.txt > x2.txt x2.txt treba da bude isti kao x.txt. ili da odmah dobijete na ekranu, mika 33456 < x1.txt Algoritam je trivijalan, ali za probijanje sifre treba par sati rada vrlo brzih masina. Napomena: mozda je potrebno par izmena za razne verzije C-ja. =========== pera.c start ============= #include <stdio.h> int tot; long rseed; /* svahilli translator A */ main(argc, argv) int argc; char *argvŠĆ; š int c; tot = 126 - ' ' + 3; sscanf(argvŠ1Ć, "%ld", &rseed); while((c = getchar()) != EOF) š c = cmprs(c); c = radd(c, rnum()); c = expnd(c); putchar(c); ć ć radd(a, b) int a,b; š int s; s = a + b; if (s > tot) s = s - tot - 1; return(s); ć cmprs(c) int c; š if(c == 'Đr') c = 0; else if (c == 'Đn') c = 1; else if (c == 'Đt') c = 2; else if (c < ' ') c = 3; else if (c > 126) c = 3; else c = c - ' ' + 3; return(c); ć expnd(c) int c; š if(c == 0) c = 'Đr'; else if (c == 1) c = 'Đn'; else if (c == 2) c = 'Đt'; else if (c == 3) c = ' '; else c = c + ' ' - 3; return(c); ć rnum() š int ir; rseed = rseed * 1103515245L + 12345L; ir = (rseed >> 16) & 0x7f; if(ir >= tot) ir = 7; return(ir); ć =========== pera.c end ============= =========== mika.c start ============= #include <stdio.h> int tot; long rseed; /* svahilli translator B */ main(argc, argv) int argc; char *argvŠĆ; š int c; tot = 126 - ' ' + 3; sscanf(argvŠ1Ć, "%ld", &rseed); while((c = getchar()) != EOF) š c = cmprs(c); c = rsub(c, rnum()); c = expnd(c); putchar(c); ć ć rsub(a, b) int a,b; š int s; s = a - b; if (s < 0) s = s + tot + 1; return(s); ć cmprs(c) int c; š if(c == 'Đr') c = 0; else if (c == 'Đn') c = 1; else if (c == 'Đt') c = 2; else if (c < ' ') c = 3; else if (c > 126) c = 3; else c = c - ' ' + 3; return(c); ć expnd(c) int c; š if(c == 0) c = 'Đr'; else if (c == 1) c = 'Đn'; else if (c == 2) c = 'Đt'; else if (c == 3) c = ' '; else c = c + ' ' - 3; return(c); ć rnum() š int ir; rseed = rseed * 1103515245L + 12345L; ir = (rseed >> 16) & 0x7f; if(ir >= tot) ir = 7; return(ir); ć =========== mika.c end =============
algoritmi.142 ndragan,
/ KAMATA = DUG * ( EXP( LN( 1 + STOPA ) / 30 ) ž DANI - 1 ) Jel ti ovo misliš da ugradiš negde u program? Za koji onda stepenuješ sa _dani_ kad znaš da će to da se svede na exp(ln(_nešto_)*dani), pa ćeš imati dvaput logaritam i eksponencijalnu, dušu dalo da duže radi i bolje greši. Predlažem KAMATA = DUG * ( EXP( LN( 1 + STOPA ) * DANI / 30 ) - 1 ) a pošto mnoge ljude, sa knjigovođama i bankarima na čelu kolone, boli između ušiju kad ugledaju decimalni zarez, stopa će ti verovatno biti pomnožena sa 100, tj izražena u procentima, pa zato KAMATA = DUG * ( EXP( LN( 1 + STOPA / 100 ) * DANI / 30 ) - 1 ) ...i to je jedina primenjiva formula, pošto je ona prva izbačena iz upotrebe još 1987 - još tada ju je inflacija pregazila. Drugi je zez što se baš i ne zna šta je u kom trenutku _dug_. Pajz' primer: 1. dobio si platu 01.11 2. spizdio si sve 03.11, u minusu si 3. kupio si marke 04.11, probio si bonus 4. drugi deo plate 08.11, malo si u minusu 5. topli obrok 11.11, malo si u plusu 6. platio si pretplatu na struju 21.11, probio si bonus 7. ostatak plate 24.11, u plusu do kraja Sad počinje seks. Slučaj jedan je jasan, imaš ono bede od pozitivne kamate. Već slučaj dva nije jasan: da li si u minusu za sve što si probio, ili ti se pripisala kamata od 1. pa si možda u plusu? 3. počinje ti kaznena kamata. šta je osnovica? samo čist dug, deo čistog duga koji probija bonus, sa ili bez prethodno obračunate kamate na minus? ... 7. ti misliš da si u plusu, ali nemaš pojma na koju kamatu se odakle dokle i sa kojom osnovicom računala kamata na kamatu. Idućeg meseca dobijaš izvod, i primećuješ da su brojke smešne, te zaboravljaš na sve.
algoritmi.143 snemcev,
>> KAMATA = DUG * ( EXP( LN( 1 + STOPA ) * DANI / 30 ) - 1 ) Mala ispravka - umesto 30 treba da stoji broj dana u mesecu za koji se obračunava kamata. Inače Jugobanka obračunava kamatu tako da ako si od petog do desetog u minusu, jedanaestog ti knjiži na računu kamatu po gornjoj formuli. Izuzetak je poslednji dan u mesecu kada se bez obzira na to da li si još u minusu ili si izmirio dugovanje kamata knjiži.
algoritmi.144 dr.grba,
>> ideji (konkretno u dr.grbinoj formuli za izradu CRCa). Zato smo ga Šta pričaš, čoveče? Kakva moja formula za izradu CRCa? (((: E, 'ajde da završimo sa ovim. Nikakvo krajnje rešenje nisam nudio, i stvarno nije u redu da se više pozivate na moje ime kao na primer lošeg algoritma. Po stoti put ponavljam da je taj algoritam primeren na mestu i u okruženju na kome se koristi, i stvarno nema potrebe da se dalje napucavamo.
algoritmi.145 dr.grba,
>> Stvarno si me neprijatno iznenadio. Notacija "mantisa e eksponent" >> je uobičajena za "floating point" brojeve (BASIC, Pascal, FORTRAN, >> C,...). Operator stepenovanja ("ž" ili "**") uopšte ne postoji u >> standardima Pascala i C-a. Bilo kako bilo, podrazumevao sam da svi >> koji čitaju moju poruku znaju da protumače ono što piše, pa ovo je >> konferencija PC.PROG, zar ne? Videvši da Priznajem grešku i obećavam da te više neću provocirati. Iako, sad se malo služiš krivinama. Moj previd, grešku, neznanje, kako god hoćeš, sad koristiš da nadmoćno predstaviš svoju veštinu izlaganja kroz nomenklature programskih jezika. Slažem se da to leži u jednoj programerskoj konferenciji, ali se ne slažem sa načinom na koji pokušavaš da me učiniš mizernijim nego što jesam. A sve je počelo od malo dobre volje.... >> Glavno iznenađenje dolazi kad sam ti pogledao resume. Inženjer >> informatike, pa još radi na EI-Bull mastodontu kao "sysop"! Na EI-Bull mastodontu sam sysop, a ne "sysop", hteo ja to ili ne. Znam dosta o toj mašini, iako sam jednog trenutka shvatio da u neke stvari ne vredi ulagati koru velikog mozga i prestao da se nešto trudim. Moji afiniteti su, eto, na drugoj strani, iako o svemu tome ovde nije reč. >> Zaista me zanima (nije mi želja da te uvredim) u kojoj školi si postao >> inženjer informatike? Koje programske jezike ste tamo učili? Inženjer informatike sam postao na Višoj Školi za ekonomiju i informatiku, današnjoj Višoj poslovnoj, kao treći u generaciji, sa prosekom 8,61. Prosek uže stručnih predmeta mi je 9,5. Učili smo neke stvari koje su u suštini valjane, iako je njihova implementacija prezentovana na predavanjima odavno zastarela. Iako mislim da se ta škola može završiti a da se ne nauči baš ništa, verujem da sam uspeo da pokupim tamo neka znanja koja mi dobro dođu u poslu kojim se bavim. I zbog toga mislim da nije baš sasvim u redu da nipodaštavaš moje zvanje. Ja ne znam šta si ti po struci, niti kakve su ti reference. To mi zbilja nije ni bitno, to za mene nije princip vrednovanja neke osobe. Jedino primećujem da se trsiš svojim znanjem, iako ne baš konstruktivno. >> Ja sam tolerantan prema formi, ne smeta mi ni višak zagrada ni >> manjak blankova. E, jebi ga, sad treba da branim i činjenicu da radim na kanti sa lošom tastaturom!... ): P.S. Jako mi je žao što sam se strahovito zarozao u tvojim očima, mada, kad bolje razmislim, i to me zabole. Nadam se da ti više neću stajati na žulj. Svakako, iako sam galamdžija, daću sve od sebe da ispunim ovo obećanje.
algoritmi.146 dr.grba,
>> algoritama izaberem neki koji mi odgovara... Problem je samo što >> ponuda i nije nešto naročito (molim dr.Grbu da se ne ljuti, zaista >> sam zahvalan na predlogu rešenja problema). Naravno da se ne ljutim na tebe. Ljutim se na one koji smatraju da sam ponuđeni algoritam, koji je zbilja krajnje jednostavan i banalan, predstavio kao konačno rešenje kriptografije u računarstvu dvadesetog veka. I koji su sve ovo zamešateljstvo iskoristili da pokažu svoju nadmoć i perfektnu erudiciju u ophođenju sa drugima. Nadam se, Zoli, da ćeš uspeti da pronađeš prikladan algoritam za svoj projekat. čao mi je što nisam na vreme povezao tvoje ranije poruke, svakako onu banalnost ne bih predložio za takvu potrebu.
algoritmi.147 debelijencija,
!=?> Najpre definišeš sve parametre, koji utiču na izlaznu !=?> vrednost nekog procesa (konkretno rezultat utakNice), i to !=?> je poželjno što više takvih para- metara zbog veće realnosti !=?> i manje verovatnoće da ti se nešto "učini poznatim". Nakon !=?> toga sedneš i odrediš odnose (verovatnoće) svakog procesa !=?> pojedinačno, turiš u jednadžbu i eto - Smrt fašizmu, !=?> sloboda:rad 1:0! U redu je to, nego problem je ako hoćeš da gledaš utakmicu! Tj. ono u Football Manageru 2, kada se utakmica stvarno igra, a ne prikazuju se 5-6 predefinisanih akcija sa 2 moguća kraja (slično radi i The Manager na PC-ju, ništa nije napredovao :). Mada i tu možeš tako, udri, kolika je verovatnoća da preševa onog ispred sebe, ali izgleda malo glomazno... :) U svakom slučaju, nemoj da se mučiš preterano :), to mi ionako nije na listi prioriteta, jer ako ne završim PAUS2 skoro, ima da me umlate ovi omladinci sa SEZAM-a... :)
algoritmi.148 janko,
> Evo dva programa koje mi je poslao drug iz CA. > Prevedite ih posebno i nazovite prvog 'pera', a drugog > 'mika', ili kako god hocete. > Pera sifrira, tako sto cita standard input i pise standard > output, a ima samo jedan argument - broj od 1 do > 2000000000. Taj broj je sifra. Mika desifrira, sa istim > brojem. Vrlo kilavo -- isti algoritam se vrlo lako prepravlja da se za šifru koriste slova, reči ili čak, rečenice. > Algoritam je trivijalan, ali za probijanje sifre treba par > sati rada vrlo brzih masina. Kako se probija, objavljeno je (ako se sećam) u poslednjim Računarima. Za tekst koji je Dejan šifrovao, PC je radio par desetina minuta, opet, ako se dobro sećam brojeva.
algoritmi.149 janko,
> _dani_ kad znaš da će to da se svede na > exp(ln(_nešto_)*dani), pa ćeš imati dvaput logaritam i > eksponencijalnu, dušu dalo da duže radi i bolje greši. > Predlažem > > KAMATA = DUG * ( EXP( LN( 1 + STOPA ) * DANI / 30 ) - 1 ) > > a pošto mnoge ljude, sa knjigovođama i bankarima na čelu > kolone, boli između ušiju kad ugledaju decimalni zarez, > stopa će ti verovatno biti pomnožena sa 100, tj izražena u > procentima, pa zato > > KAMATA = DUG * ( EXP( LN( 1 + STOPA / 100 ) * DANI / 30 ) > - 1 ) Ako već potežemo numeričku tačnost, improvizovanje stepenovanja pomoću EXP / LN para daje daleko slabije rezultate od korišćenja prave funkcije za stepenovanje, ako je ona dobro realizovana.
algoritmi.150 nikac,
Evo ga dobar 32-bitni CRC (nesto sporiji, ali bez konsultacionih tabela) Cini mi se da ga je napisao ZZ, uz primer racunaja crc-a nekog fajla: #include <stdio.h> /* ------ 32-bitni CRC pocetak procedure ------ */ unsigned long updcrc (int c, unsigned long crc) š _asm š xor dx,dx mov ax,c xor al,byte ptr crc make: shr dx,1 ror ax,1 jae decc xor dx,0xedb8 xor ax,0x8320 decc: loop make mov bx,word ptr crc+2 mov cx,word ptr crc mov cl,ch mov ch,bl mov bl,bh xor bh,bh xor dx,bx xor ax,cx ć ć /* ------ 32-bitni CRC kraj procedure --------- */ /* ------ Primer izracunavanja CRC nekog fajla ------ */ unsigned long crc_file(char *fname) š FILE *f; unsigned long crc; int c; crc = 0xffffffffl; /* ima 8 f-ova, tj treba da ima :) */ if ( ( f=fopen(fname,"rb") ) == NULL ) return crc; while ( ( c=fgetc(f) ) != EOF ) crc = updcrc(c,crc); fclose(f); return crc; ć /* ------ Kraj primera ------ */ Eto toliko od mene, nadam se da ce Zoliki i ostalima ovo fino sluziti...
algoritmi.151 kale,
>> >> ...pa još radi na EI-Bull mastodontu kao "sysop"! >> Na EI-Bull mastodontu sam sysop, a ne "sysop", hteo ja to ili ne. Navodnike sam stavio zato što nisam bio siguran šta to znači u BBS resume-u. U BBS žargonu "sysop" je ono što je na velikim sistemima "system administrator". Na velikim sistemima postoji i "system operater". Nije mi bila želja da omalovažim tvoj posao, koji god da je. Nažalost, baš je tako ispalo. :((( Pozdrav! ps Odgovor na ostatak poruke u mail, ne spada u temu. :)
algoritmi.152 ndragan,
/ function crc16( data_p:string; length:word ): word; ==== ...i onda pomislim "šta je metnuo smajli u sred funkcije"
algoritmi.153 ndragan,
/ Cilj je da predstavnici šifara budu ravnomerno razbacani po / prostoru, i da je prostor dovoljno velik, da postane iluzorno Ono što sam dao je samo na brzaka ideja da se zakomplikuje život eventualnom razbijaču algoritma; za ozbiljniji posao sledi to što si rekao. Znam za slučajeve kad je dodatno komplikovanje postupka dalo šifru koja se lakše razbija od prvobitne. BTW, CRC nije bilo koji tridesetdvobitni broj. Mislim da je to neki iz jedne određene klase polinoma u 0-1 algebri, te da ono "cyclic" ima veze sa imenom klase. Pitanje je koliko u stvari ima CRC brojeva, mislim da ih svakako ima manje od MaxLongInt.
algoritmi.154 ndragan,
/ Ja danas gledao ima li u nekom od manuela VMS-a koji se polinom tačno Pogledaj negde u System Security (VMS 4.2), čini mi se pred kraj druge ili treće glave, ima oko strana ipo kako se računa CRC. Nemoj me držati za reč, to je bilo pre pet godina :)
algoritmi.155 djelovic,
> BTW, CRC nije bilo koji tridesetdvobitni broj. Mislim da je to neki iz > jedne određene klase polinoma u 0-1 algebri, te da ono "cyclic" ima veze > sa imenom klase. Pitanje je koliko u stvari ima CRC brojeva, mislim da > ih svakako ima manje od MaxLongInt. CRC je samo specifični HASH algoritam napravljen za detektovanje grešaka pri prenosu/čuvanju podataka. Za potrebe transformacije lozinke je potpuno neupotrebljiv jer se na osnovu njegovog rezultata lako dobija neka reč koja taj rezultat daje. Kao i svi dobri HASH algoritmi, i CRC pokriva potpuno i uniformno ceo opseg brojeva za koji je napravljen. P.S. Naglasak poruke je na terminologiji. Ono što zoliki treba je hash algoritam koji je uz to i jednosmeran, a ne specifični CRC.
algoritmi.156 dragisha,
-> Molim te, navedi mi jedan komercijalni paket koji kaže "rezultat -> transformacije ulazne lozinke je to_i_to". U slučaju da konkretan primer -> nemaš, diskusiju po ovom pitanju smatram završenom. Komercijalni paket... Zovu ga Unix, tek odnedavno se taj rezultat transformacije krije, a godinama je bio sasvim pristupačan. Kažeš cat /etc/passwd i dobiješ rezultate ulaznih transformacija, potrudiš se malo više i nađeš i sam algoritam. Postoje razni crack-eri koji će metodom uzaludnih pokušaja da nabodu password, ali nijedan ne može da ga nađe nekom ziher metodom u obrnutom pravcu. A diskusija i jeste za završavanje. Dvije (i više:) grupe ljudi govore o kruškama i jabukama. Brezveze:).
algoritmi.157 dragisha,
-> I dalje mislim da je rešenje dobro NA ODREĐENOM NIVOU.... Na nivou malog Perice, apsolutno!:))
algoritmi.158 dr.grba,
>> -> I dalje mislim da je rešenje dobro NA ODREĐENOM NIVOU.... >> >> Na nivou malog Perice, apsolutno!:)) 90% ljudi koji pristupaju računarima su na nižem nivou nego mali Perica. Amin!
algoritmi.159 zolika,
>> C Snippets. Beće na FFSu. Evo baš ću da zovem da uzmem ponovo (i da ti >> uštedim trud)... Neizmerno ću ti biti zahvalan...
algoritmi.160 skerl,
ASM CRC calculation code This unit provides three speed-optimized functions to compute (or continue computation of) a Cyclic Redundency Check (CRC). These routines are contributed to the public domain. Each function takes three parameters: InitCRC - The initial CRC value. This may be the recommended initialization value if this is the first or only block to be checked, or this may be a previously computed CRC value if this is a continuation. InBuf - An untyped parameter specifying the beginning of the memory area to be checked. InLen - A word indicating the length of the memory area to be checked. If InLen is zero, the function returns the value of InitCRC. The function result is the updated CRC. The input buffer is scanned under the limitations of the 8086 segmented architecture, so the result will be in error if InLen > 64k - Offset(InBuf). } Interface Function UpdateCRC16(InitCRC : Word; Var InBuf; InLen : Word) : Word; { I believe this is the CRC used by the XModem protocol. The transmitting end should initialize with zero, UpdateCRC16 for the block, Continue the UpdateCRC16 for two nulls, and append the result (hi order byte first) to the transmitted block. The receiver should initialize with zero and UpdateCRC16 for the received block including the two byte CRC. The result will be zero (why?) if there were no transmission errors. (I have not tested this function with an actual XModem implementation, though I did verify the behavior just described. See TESTCRC.PAS.) } Function UpdateCRCArc(InitCRC : Word; Var InBuf; InLen : Word) : Word; { This function computes the CRC used by SEA's ARC utility. Initialize with zero. } Function UpdateCRC32(InitCRC : LongInt; Var InBuf; InLen : Word) : LongInt; { This function computes the CRC used by PKZIP and Forsberg's ZModem. Initialize with high-values ($FFFFFFFF), and finish by inverting all bits (Not). } Pozdrav, Skerl.
algoritmi.161 skerl,
Cyclic Redundancy Check --------------------------------------------------------- This archive includes the following three files: crc2.c Computes crc by bit shifting crcfast.c Computes crc by table lookup crctab.c Computes tables used in crcfast.c crc.doc This file The utilities crc2 and crcfast compute the cyclic redundancy checks for both the crc-16 (used in arc files) and crc-ccitt (used in xmodem). crcfast is faster than crc2. These routines compute the crc's for a given file as a means of checking data integrity. These routines compile without change under Turbo C. All are short and illustrate the basic principles of crc calculations. Pozdrav, Skerl. crc-c.zip
algoritmi.162 niklaus,
(:> na PC-ju, ništa nije napredovao :). Mada i tu možeš tako, udri, (:> kolika je verovatnoća da preševa onog ispred sebe, ali izgleda (:> malo glomazno... :) Ma znaš kako. U principu bi mogao da kretanje svakog igrača u napadu da definišeš kretanje ukoso cik-cak (znaš kako izgleda šematski prikaz binarnog drveta? E tako!). Možeš za svakog igrača da podesiš verovatnoću skretanja na levo i na desno, mada je to već perverzija. Ako pak uradiš tako, prilično realno možeš da prikažeš krilne igrače, centarfore... Sličnu, ali malo komplikovaniju logiku primenjuješ na odbranbenog igrača. Njemu možeš da uvedeš 4 smera (NW, NE, SW, SE, you know what I mean?). Da se igrač u napadu i odgovarajući igrač iz odbrane (ovo "odgova- rajući" možeš da izvučeš i postavki napada: 4-2-4, 5-3-2, ili kako već to ide), ne bi baš žestoko mimoišli, valja definisati ili trenutak kada se igrač iz odbrane "posvećuje" "svom" igraču, ili da jednostavno kretanje odbranbenog igrača ne bude _baš_ slučajno. Otprilike je to - to. Logika je prilično jednostavna, i poboljšanja su poželjna... (:niklaus:)
algoritmi.163 niklaus,
(:> Šta pričaš, čoveče? Kakva moja formula za izradu CRCa? (((: Ne uzbuđuj se! (: Zar nisi primetio da je moj stav sve vreme bio srodan tvome, odn. složili smo se da nisi napravio kakvo remek-delo, već si samo ponukao ljude da stvaraju _pravu_ formulu za CRC... (:niklaus:)
algoritmi.164 niklaus,
(:> (Moja opaska #1: (:> dummy : word; !! (:> dummy := $ff and ord(data_pŠjĆ); !! (:> => ($FF and $xy) = $xy (:> Kraj teoreme. Hvala za rupu na saxsiji, ali nisi video da je dummy tipa word, što će reći da se preslikavaju samo "donjih" 8 bitova promenljive dummy... (:> (Moja opaska #2: data, crc : word;) (:> !-> CRC := (CRC shl 8) or ((data shl 8) and $ff); (:> (:> Posle ovakvog reda, prvih 8 bitova će sigurno biti 0! Preporučujem ti da ponovo prelistaš žabarkapu... i data i CRC su opet word-ovi... (:> Ako si već pokušavao da smisliš algoritam kojim ćeš nas zavarati (:> i navesti da poverujemo da je CRC, mogao si da smisliš nešto barem (:> malo pametnije od ovoga. Ovo što sam komentarisao su, moram tako (:> da se Prijatelju, u redu si... (:> #$*&%!šđ+>/č NO COMMENT! Kao što si već video originalni izvorni kod (u Cu) sam ti poslao na mail. Budi toliko dobar pa ga ti prevedi zoliki... (Komentar za ostale) Programčić koji sam sveo na Pascal nije baš _identičan_ "onom" u Cu, ali za kodiranje šifara je dobar (u prevodu: nema dečije bolesti, tipa malko promenite ulazni string, pa se isto toliko malo menja i izlazna vrednost CRCa). Inače, dotični program u C-u je tzv: 16 12 5 CCITT CRC 16 polinom : X + X + X + 1. (:niklaus:)
algoritmi.165 prvul,
ŮCRC je samo specifični HASH algoritam napravljen za detektovanje grešaka Ůpri prenosu/čuvanju podataka. Za potrebe transformacije lozinke je potpuno Ůneupotrebljiv jer se na osnovu njegovog rezultata lako dobija neka reč Ů▄▄ Da ne bude zabune, CRC ukratko radi ovako: svaki niz od N bitova možemo posmatrati kao polinom N-1-vog stepena (svaki bit je koeficijent uz odgovarajući stepen) nad GF(2). Onda mi dodamo nekih K bita na tih N bita, i to tako da dobijeni polinom bude deljiv unapred datim polinomom K-tog stepena. Dakle, da bismo konstruisali neki niz bita koji daje traženi CRC treba samo da obrnemo postupak... imamo polinom generator G (to je onaj od K-tog stepena) i imamo niz od K bita (polinom K-1-vog stepena P) koji predstavlja CRC. Svi polinomi koji su mogli nastati CRC-ovanjem su tada (G-P)+G*N gde je N proizvoljan polinom. Dobro, nisu baš svi ovi polinomi rešenja, jer je uslov da donjih K bita tog polinoma budu nule, ali i to nije teško postići... ukratko, CRC jeste one-way u tom smislu što je mala verovatnoća da se pogodi baš ona šifra koja daje taj CRC, ali nije nikakav problem naći makar jednu (ne nužno polaznu) šifru koja daje dati CRC.
algoritmi.166 janko,
> Komercijalni paket... Zovu ga Unix, tek odnedavno se taj > rezultat transformacije krije, a godinama je bio sasvim > pristupačan. Kažeš cat /etc/passwd i dobiješ rezultate > ulaznih transformacija, potrudiš se malo više i nađeš i > sam algoritam. Postoje razni crack-eri koji će metodom > uzaludnih pokušaja da nabodu password, ali nijedan ne može > da ga nađe nekom ziher metodom u obrnutom pravcu. Ako je algoritam poznat autoru programa za razbijanje, i još ako je ulazni podatak tog programa rezultat transformacija originalnog programa, program SIGURNO daje rešenje, zar ne? Otkud onda znaš, da li "uzaludno pokušava" ili sprovodi svoj plan? Evo, matematički, opet, polazne osnove za razbijanje: recimo, da imamo data 32 bita za koje treba izmisliti lozinku koja će ih generisati, i algoritam kojima se iz proizvoljne lozinke generiše tih 32 bita. Očigledno je da se rešavanje problema svodi na samo rešavanje trideset i dve jednačine. Ne izgleda veliki problem, naizgled? Današnji računari koji bi se koristili za razbijanje su izuzetno brzi -- sistem od trideset dve jednačine, makar i duge, ne izgleda previše velik... Da se vratimo na Zolikin problem. Zolika je tražio "da se pamti četiri bajta." Na HP-UX je rezultat transformacije u /etc/passwd velik trinaest slova, tj. otprilike 9-10 bajtova. To već izgleda malo sigurnije, ali, očigledno, ne dovoljno, jer, eto, postoje i programi koji na tim juniks mašinama (koje nisu mnogo brze, zar ne?) mogu da "unazad" izbunare lozinku. Postavlja se pitanje, sa koliko je "javnih" bita potrebno čuvati lozinku, da bi problem postao "pretežak" za razbijanje za današnje rečunare? Idealno bi bilo, ne više nego što je dužina prosečne lozinke. Problem je što se to SIGURNO može razbiti, današnjom tehnologijom, ako se zna algoritam transformacije. Hajde da odemo u drugu krajnost -- izmislimo neku jako dobru transformaciju (već postoje) koja će nam kao rezultat dati puno više bitova -- recimo 1024, koje ćemo ostaviti "javne." Problem je tu, što se sada može pretpostaviti, za prosečnog korisnika, da je lozinka koju koristi manja od, recimo, dvadesetak slova, pa se opet rešava sistem od samo par stotina jednačina. Ako ste se nekad pitali, zašto sistem menadžere teraju da npr. svakog dana menjaju lozinku, i, još, da lozinka ne bude kraća od, recimo, nekoliko desetina slova, sad vam je verovatno jasnije... Zaključak je nedvosmislen -- jeste to lepo, kao cilj, ostavljati SVIMA "na uvid" ono što je predstavlja lozinke, ali, očigledno, takva zaštita nije neprobojna. Primetite da je sam problem "ostavljanja prezentacije lozinke javno" primetno različit od šifrovanja. Pri šifrovanju, nama nepoznat tekst se modifikuje. Pri ostavljanju prezentacije lozinke javno, mi znamo da treba da izmislimo nama nepoznat tekst koji će dati nama POZNAT rezultat, pri čemu nas ne zanima kakav je STVARNO nepoznat tekst, i pri čemu imamo relativno kratak rezultat koji ciljamo! Na kraju, šta bi Zolika trebalo da radi, da li, onda, uopšte da implementira neki algoritam za transformaciju lozinke? Odgovor je, ipak, DA. Kao što i ključevi čuvaju vrata, ali se vrata mogu razbiti cela, (sa nadom da će to komšije čuti i pozvati miliciju) tako, lozinke treba čuvati što je više moguće. Pretpostavimo da sistem, ipak, ne radi kao Junkis -- ne kaže svakom gostu "izvolte rezultate lozinki," već ih čuva u fajlovima, koje možda može nekad neko neovlašćeno da pokuša da pogleda, i da vidi, ali, ipak, i za to treba da se pomuči... U tom slučaju je vrlo potrebno, da mu to ne bude dovoljno, već da mora da, ako već nema program koji rešava baš takav slučaj, angažuje nekog stručnjaka da bi od toga, do čega je došao, generisao šifru. Već to može da bude dovoljno da, onaj koji se namerio na razbijanje, odustane. Ili, ako je neka špijunska služba (nema svako para da plaća sve to, na sreću) da primeni druge, bezbolnije metode -- npr. prisluškuje telefonsku liniju, baš dok kucamo šifru. :) Naravno, sistem privilegija i zaštite fajlova treba da je takav, da WRITE pristup do pomenutog fajla ima samo sistem administrator. Na MS-DOS-u, to je, očigledno, isto, kritično mesto. Može da se, verovatno, postigne vrlo pažljivo napisanim but i svim ostalim programima i zaključavanjem (klasičnim) mašine koja se butuje. Do you want ultimate security? Don't buy computer! -- je parafraza taga jednog inženjera koji se isključivo bavi kompjuterskim zaštitama. Možda vam je sada jasnije zašto. :)
algoritmi.167 bulaja,
│C Snippets └─── R:\IBMPC\C\*.* ---------------------- snip0493 arj 162332 C-snippets 04/93, zbirka raznih C funkcija (source) #1 snip0493 a01 160019 C-snippets 04/93, zbirka raznih C funkcija (source) #2
algoritmi.168 peca.st,
!-> (:> dummy : word; !-> !! (:> dummy := $ff and ord(data_pŠjĆ); !-> !! !-> Hvala za rupu na saxsiji, ali nisi video !-> da je dummy tipa word, što će reći da se !-> preslikavaju samo "donjih" 8 bitova !-> promenljive dummy... Svašta od tebe. Znači, ako je dummy tipa word, i ja napišem dummy := 1 onda će samo jedan bit biti promenjen?!???! Ostalih 15 ostaje isto, jel? Ovde dummy postaje ord (data_pŠjĆ) bez sumnje. !-> (:> !-> CRC := (CRC shl 8) or ((data shl 8) and $ff); !-> (:> Posle ovakvog reda, prvih 8 bitova će !-> sigurno biti 0! !-> !-> Preporučujem ti da ponovo prelistaš !-> žabarkapu... i data i CRC su opet !-> word-ovi... žabarkapu nisam nikada prelistavao ni usmeno ni pismeno, a nemam ni nameru. Za sada se dobro držim, što se za tebe ne bi reklo. Lepo sam napisao: prvih 8 bitova će postati 0! CRC shl 8 vraća 16 bitova od kojih su prvih 8 nula, bez sumnje. data shl 8 takođe. 16 bitova od kojih su prvih osam nule, kad se enduju sa $ff daće 16 bitova koji su svi nula, bez sumnje! Evo primera: 1110 0111 0000 0000 (data shl 8) and 0000 0000 1111 1111 ($ff) ------------------- 0000 0000 0000 0000 Znači radimo (CRC shl 8) or 0 = (CRC shl 8) Baš kao što sam napisao: prvih osam bitova je nula. !-> Prijatelju, u redu si... Ja sam za sada u redu, hvala na pitanju. !-> Budi toliko dobar pa ga ti prevedi zoliki... Da prevodim ono đubre? Nisam lud da trošim vreme na to. Usput, jedino mi još nisi objasnio čemu služi promenljiva dummy? !-> (Komentar za ostale) Programčić koji sam !-> sveo na Pascal nije baš _identičan_ !-> "onom" u Cu, ali za kodiranje šifara je !-> dobar (u prevodu: nema dečije bolesti, !-> tipa malko promenite ulazni string, pa se !-> isto toliko malo menja i izlazna vrednost !-> CRCa). E, vidi se kolko znaš o CRCu. Pogledaj malo CRC32 što je poslao nikac. Promeni jedno slovo, dobićeš totalno drugačiji broj! Ovaj "tvoj" nazovi CRC16 za ulazne stringove 0 .. 9 daje samo dve različite vrednosti, slično je ako probaš i sa nekim drugim vrlo sličnim stringovima, davaće iste vrednosti. žudi me kako uspevaš da i posle skrenute pažnje na te greške i dalje praviš iste previde, a još i da ih braniš i pokušavaš da me uveriš da je 2 + 2 = 5. Peđa.
algoritmi.169 prvul,
Ůda imamo data 32 bita za koje treba izmisliti lozinku koja će ih Ůgenerisati, i algoritam kojima se iz proizvoljne lozinke generiše Ůtih 32 bita. Očigledno je da se rešavanje problema svodi na Ůsamo rešavanje trideset i dve jednačine. Ne izgleda veliki Ůproblem, naizgled? Današnji računari koji bi se koristili za Ůrazbijanje su izuzetno brzi -- sistem od trideset dve jednačine, Ůmakar i duge, ne izgleda previše velik... Ů▄▄ Prvo, sistem od tih 32 jednačine ne mora da bude linearan, tako da opšta metoda za njegovo egzaktno rešavanje ne mora postojati. Drugo, funkcije koje bi u tim jednačinama figurisale sigurno nisu diferencijabilne pa čak ni neprekidne, tako da otpada rešavanje bilo kojim numeričkim metodom. Ostaje samo nasumični postupak, koji se može optimizovati za date jednačine, ali opet će za traženje šifre koja daje ta 32 bita morati da se proba nešto reda 2**32, dakle to sa jednačinama je samo lepa komplikacija, ali ništa ne pomaže da se provali šifra (osim ako šifru generiše jako glup algoritam pa jednačine postanu linearne). Naravno, to ne znači da je 2*32 za današnje računare jako veliki broj... nije... ali posmatrajmo sledeći problem: algoritam za dobijanje tog 32-bitnog broja se, recimo, izvršava 0.1 sec. To pri proveri šifre nije veliki problem (korisnik od trenutka kucanja lozinke do odziva sistema čeka 1 sec). Međutim, neko ko hoće da provali tu šifru mora da proba reda 2**32 šifara, a to puta 0.1 sec je već pozamašno vreme (13 i kusur godina). Ako tehnologija napreduje pa računari budu 100 puta brži, samo treba naći algoritam koji bi se opet izvršavao za 0.1 sec i kraj. Opet, i sada se da naći npr. 100000 puta brži računar, pa se ova šifra može provaliti za sat-dva. E, ako je neko voljan da utroši sat vremena na takvom računaru da bi provalio lozinku na mom BBS-u koji radi na 100000 puta sporijem računaru, neka mu je :) Ako se radi ne o BBS-u već o pristupu nekim zaista osetljivim (top secret :) podacima, onda se koriste Message Digest algoritmi i to niko živ ne može da probije i kraj priče (btw. nisu ti MD sistemi tako spori čak ni za BBS primene, ali ipak ne preterujmo).
algoritmi.170 ganta,
> Kako se probija, objavljeno je (ako se sećam) u poslednjim > Računarima. Za tekst koji je Dejan šifrovao, PC je radio par > desetina minuta, opet, ako se dobro sećam brojeva. Hvala, javiću mu da je provaljen :)
algoritmi.171 dragisha,
-> Ako je algoritam poznat autoru programa za razbijanje, i još -> ako je ulazni podatak tog programa rezultat transformacija -> originalnog programa, program SIGURNO daje rešenje, zar ne? -> Otkud onda znaš, da li "uzaludno pokušava" ili sprovodi svoj -> plan? On sprovodi plan koji se zasniva na tome (kvaka) da je korisnik lozinku napravio sa kombinacijom riječi iz riječnika koji cracker ima na raspolaganju i na nadi crackera da je tačno pretpostavio pravilo koje je korisnik upotrijebio za kombinovanje tih riječi. To ziher radi za naprimjer moju lozinku dragisha1, oh_my_god i slične. Zanima me kako bi razbio passworde 'Poleksija' ili 'dje_si_ojtra'. SUS, takvi programi se zasnivaju na slabostima sistema koje se daju izbjeći. Nema crackera koji SIGURNO daje rješenje. -> jer, eto, postoje i programi koji na tim juniks mašinama (koje -> nisu mnogo brze, zar ne?) mogu da "unazad" izbunare lozinku. Nisam čuo za nešto ovakvo. Na šta misliš?
algoritmi.172 dragisha,
-> >> -> I dalje mislim da je rešenje dobro NA ODREĐENOM NIVOU.... -> >> -> >> Na nivou malog Perice, apsolutno!:)) -> -> 90% ljudi koji pristupaju računarima su na nižem nivou nego mali Perica. Optimisto:), ima njih i čitavih 98%, a neki se zovu stručnjacima. Po Marfiju, na instalaciji do koje ti bude stalo da ne pukne naći će se upravo veliki Perica.
algoritmi.173 debelijencija,
!=?> Ma znaš kako. U principu bi mogao da kretanje svakog igrača !=?> u napadu da definišeš kretanje ukoso cik-cak (znaš kako !=?> izgleda šematski prikaz binarnog drveta? E tako!). Možeš za Tja, ovo je malko ograničeno... Ipak, napadači se malo i vraćaju, pa dodavanja... Nije elementarno, probavao sam ja to da izvedem, naravno idejno, o programu nisam ni razmišljao ozbiljno, i dođeš do jedno pet šest situacija pred kojima samo možeš da kažeš: GU! :) !=?> centarfore... Sličnu, ali malo komplikovaniju logiku !=?> primenjuješ na odbranbenog igrača. Njemu možeš da uvedeš 4 !=?> smera (NW, NE, SW, SE, you know what I mean?). Da se igrač u Za odbrambene je malo jednostavnije... On jednostavno juri najbližeg i gleda da mu uzme loptu, a ako ne može, da ga faulira. Stvarno nije preterano teško. Ali, ono što zanemaruješ, je ujedno i najvažnija stvar: SREDINA! Tamo se odlučuju sve utakmice, i kretanje igrača na tome mesto je zaosta zavisno od mnooogo faktora... Tamo nešto pametno smisliti zaista i jeste vrlo teško... Sećam se da je u Football Manageru 2, to bilo stvarno očajno glupo rešeno. Oni iz sredine jednostavno samo voze napred, nema dodavanja, a ako ne može da prođe, onda proba da je dune napred. Tužno. :( Hvala što pokušavaš da mi pomogneš, možda nešto i zaključimo! :)
algoritmi.174 niklaus,
(:> Tja, ovo je malko ograničeno... Ipak, napadači se malo i vraćaju, (:> pa dodavanja... Nije elementarno, probavao sam ja to da izvedem, Ma ništa, onda uvedi i njima mogućnost (taktičkog) vraćanja iz napada. (:> Ali, ono što zanemaruješ, je ujedno i najvažnija stvar: SREDINA! (:> Tamo se odlučuju sve utakmice, i kretanje igrača na tome mesto je (:> zaosta zavisno od mnooogo faktora... Tamo nešto pametno smisliti (:> zaista i jeste vrlo teško... Pa "sredini" se najpre posveti preko početnog rasporeda igrača, nakon čega usleđuje "podbacivanje" i trčanje za loptom u stilu "muve na govno". ((: Zezam se. Uopšte smatram da bi mogao da svakom igraču u svakoj od taktičkih postava (5-3-2, 4-2-4, Lotus123...) mogao da pridružiš "polje dejstva". Pod time podrazumevam deo terena u okviru koga će se igrač kretati, dok ne bude fauliran, bez dodavanja sledećem igraču. "Polja dejstva" susednih igrača, po mojoj proceni, bi trebalo da se seku po nekih 40% saigračevog polja dejstva, tako da su moguće značajnije promene postave u toku napada (odbrane). Dalje, u okviru tih polja valja definisati dovoljno realne algoritme kretanja. Poželjni parametri: 1) blizina odgovarajućeg suparničkog igrača (na osnovu čega će pomak između dva proračuna pozicije biti veći) 2) blizina najbližeg saigrača u smeru _napad_ (na osnovu čega se pove- ćava verovatnoća da u sle dećem koraku izvrši "pas") 3) konfiguracija (raspored) kompletne suparničke odbrane (više odbran- benih igrača na levom krilu prouzrokuje povećanje verovatnoće za skretanje udesno u sledećem koraku) 4) ... Može se dodavati još uslova za finije doteravanje formule kretanja, kao što se u slučaju prvog parametra može uvesti dodatni ulazni parametar, da se veličina pomaka smanjuje sa brojem saigrača-napadača i sl. (:> Hvala što pokušavaš da mi pomogneš, možda nešto i zaključimo! :) Nema se na čemu... Sve ovo što ovde baljezgam je iz malog mozga, a ne nešto o čemu sam napisao zadnje tri knjige. Ja ovde glumim usmerivača tvojih ideja, a ti si prava radna snaga. (; (:niklaus:)
algoritmi.175 zolika,
>> Da se vratimo na Zolikin problem. Zolika je tražio "da se pamti >> četiri bajta." Na HP-UX je rezultat transformacije u >>/ etc/passwd velik trinaest slova, tj. otprilike 9-10 bajtova. >> To već izgleda malo sigurnije, ali, očigledno, ne dovoljno, Dobro, dobro, može i više bajtova, pa nećemo se sporiti oko bajt-dva :-)
algoritmi.176 dr.grba,
>> Pa "sredini" se najpre posveti preko početnog rasporeda igrača, >> nakon čega usleđuje "podbacivanje" i trčanje za loptom u stilu >> "muve na govno". ((: Jel' može ovo malo da se preseli tamo gde mu je mesto? Ovde je reč o programiranju, mahom na PC mašinama. Pa ako tražite algoritme programiranja, onda OK, a ako tražite algoritme strategije igranja fudbala, onda tome ovde nije mesto. Modulatore, probudi se!
algoritmi.177 d.petrovic,
Ă> (:> Hvala što pokušavaš da mi pomogneš, možda nešto i zaključimo! Ă> :) Ă> Ă> Nema se na čemu... Ă> Sve ovo što ovde baljezgam je iz malog mozga, a ne nešto o čemu Ă> sam napisao zadnje tri knjige. Ja ovde glumim usmerivača tvojih Ă> ideja, a ti si prava radna snaga. (; Mogli bi da ovo nastavite kroz mail ili u conf igre. Zar nemati ni malo milosti i pristojnosti?
algoritmi.178 niklaus,
(:> Dobro, dobro, može i više bajtova, pa nećemo se sporiti oko (:> bajt-dva :-) Nego, jel' valja onaj 32-bitni (upravo 4 bajta koja tražiš) algoritam, koji ti poslah? (:niklaus:)
algoritmi.179 ndragan,
/ Ako već potežemo numeričku tačnost, improvizovanje stepenovanja / pomoću EXP / LN para daje daleko slabije rezultate od A tek kombinacija Exp(ln ...) ** ... Moj princip je da štogod programski jezik ima ugrađeno, sigurno će biti brže i tačnije nego da ga simuliram.
algoritmi.180 ndragan,
/ Inženjer informatike sam postao na Višoj Školi za ekonomiju i / informatiku, Nisi ni loš s obzirom na školu ;) Je li, koliko je bilo vanrednih na jednog redovnog? NHF, ali smatram da je programiranje nešto što nije trebalo davati ekonomistima u ruke, a pogotovu ne studirati ga na ekonomiji. Iz priloženog tebe vidim da si uspešno eskivirao ovu anomaliju našeg školstva, što za većinu kolega koji su završili studije na ekonomskim fakultetima, ne mogu da kažem. O ovome je bilo već reči, pa da ne pravimo replay, a?
algoritmi.181 ndragan,
/ resume-u. U BBS žargonu "sysop" je ono što je na velikim sistemima / "system administrator". Na velikim sistemima postoji i "system / operater". Nije mi To zavisi od proizvođača. Big Blju je imao, valjda, sistem programera i sistem operatera; na vaksu postoji sistem menadžer i sistem operater, itd. Ovi nazivi su se provlačili čak i kroz sistematizacije radnih mesta, što je dovodilo do dobrih zabuna kad je šef erca odrastao na aj bi emu pa kupio vahu, a onu artiju napravi po plavom standardu. Ne bih se čudio da se kod Hanibala to zove Sysop.
algoritmi.182 janko,
> Drugo, funkcije koje bi u tim jednačinama > figurisale sigurno nisu diferencijabilne pa čak ni > neprekidne, tako da otpada rešavanje bilo kojim numeričkim > metodom. Ostaje samo nasumični postupak, koji se može > optimizovati za date jednačine, ali opet će za traženje > šifre koja daje ta 32 bita morati da se proba nešto reda > 2**32 To je samo četiri milijarde pokušaja. Što je još lepše, baš ako su nasumični, pokušaji su nezavisni -- ne moraju da se dodele istom procesoru, čak ni istom računaru... U svakom slučaju, četiri milijarde je opet dosta manje od npr. 1e64, (sve 10-slovne lozinke, npr.) Eto, i Juniks je koristio duplo više bajtova, pa su ga "razvaljivali." Da li su algoritmi u Juniksu stvarno toliko loši, da se samo zato lako provaljuju? U svakom slučaju, imamo, dakle, kristalizovanu ideju, sada: cilj nam je da mogući "sistem jednačina" ne može da se rešava nekim "kraćim metodama" od pokušaja redom. Znači, samo da smislimo funkciju koja to zadovoljava, odredimo koliko je pokušaja nedostižno za današnje računare -- i rešismo problem. I dalje mislim da je sigurnije ako nema varijante "izvolte rezultat transformacije lozinke," na sistemu... > Ako se radi ne o BBS-u već o pristupu nekim zaista > osetljivim (top secret :) podacima, onda se koriste > Message Digest algoritmi i to niko živ ne može da probije > i kraj priče (btw. nisu ti MD sistemi tako spori čak ni za > BBS primene, ali ipak ne preterujmo). Ali ti dajdžesti su znatno duži od četiri bajta?
algoritmi.183 dejanr,
>> I dalje mislim da je sigurnije ako nema varijante "izvolte >> rezultat transformacije lozinke," na sistemu... Svakako. Ako čovek već mora da padne u jamu, ne mora je samom sebi iskopati ;) Dakle, trebalo bi imati dobar algoritam kojim se napadaču otežava da, ako bi mu šifrat bio poznat, nađe lozinku koja odgovara tom šifratu. A onda još i šifrat sakriti od "posetioca", čime se sigurnost dalje povećava. Dakle, sve znamo, samo nam još treba dobar algoritam ;)
algoritmi.184 janko,
> Dakle, sve znamo, samo nam još treba dobar algoritam ;) Ja (da budem skroman: mislim da) ga znam. Tačnije, znam postupak, za koji ne nalazim slabosti kakve sam našao u drugim predlozima koji su se ovde pojavljivali. Ideja je prosta, a da bi se realizovala, moraju se, naravno, koristiti tekovine naučnika koji su se bavili srodnim problemima. I, nešto, imam utisak da nisam jedini u ovoj temi, koji bi to umeo da izvede... Neću da kažem sa kog su faksa, oni na koje sumnjam da znaju. ;) Dobar deo rešenja se krije u već postojećim porukama!
algoritmi.185 peca.st,
!-> I, nešto, imam utisak da nisam jedini u ovoj temi, koji bi to !-> umeo da izvede... Ne moraš da budeš jedini da bi bio prvi. :) So, ajde ti to pošalji bez tolke mistifikacije. :) Peđa.
algoritmi.186 zolika,
>> Nego, jel' valja onaj 32-bitni (upravo 4 bajta koja tražiš) algoritam, >> koji ti poslah? >> >> (:niklaus:) Poslužiće, zahvaljujem.
algoritmi.187 janko,
> !-> I, nešto, imam utisak da nisam jedini u ovoj temi, > koji bi to !-> umeo da izvede... > bez tolke mistifikacije. Nema mistifikacije -- na osnovu dosadašnje priče, CRC algoritam nije za to. Mesidž dajdžest algoritmi se, takođe, dizajniraju sa drugim ciljem -- da dve poruke ne mogu da imaju isti "potpis," a ne da se od nekog dajžesta ne može lako napraviti BILO KAKVA poruka (mada je vrlo moguće da neki ima i tu osobinu, u kom slučaju se može koristiti). Šta nam ostaje? Kvalitetni algoritmi konvencionalne kriptografije, (znate oni, što se pišu silne knjige o njima, radovi... ;) ) kojima je posao da onemoguće upravo ono što i mi želimo da onemogućimo -- "odmotavanje" unazad, MAKAR i na osnovu parčeta poznatog teksta, da bi se došlo do šifre ili, bar, "semena" koje je njen rezultat. Dakle, pristupna lozinka mora da inicira algoritam kojim će se nešto, što će se posle proveravati, da li je isto, šifrovati. Rezultat šifrovanja se jedini pamti. Tako bih ja to radio. Ako to dobro primenite, po meni, tajne službe će radije organizovati prepad vašeg računara, prisluškivanje linija dok kucate lozinku ili nešto slično, nego što će raditi na provaljivanju pristupne lozinke.
algoritmi.188 djelovic,
U konferenciji NOVOSTI, poruka 4.822 se nalazi opis jednog jednosmernog HASH algoritma. Na žalost, čini se da je previše glomazan za zolikine potebe :(.
algoritmi.189 janko,
Vi koji ste se prihvatili problema "sigurne reprezentacije pristupne lozinke," pogledajte: > =============================== > 4.822 NOVOSTI.4:microb Tu se izlaže, između ostalog, SHA algoritam, za dobijanje heš funkcije od date poruke. Ako smo zaključili da CRC32 prvo daje premalo bita, a, drugo, da je CRC uopšte lako "provaljiv," onda eto lepog predloga kako dobiti neki broj, reprezent neke poruke, koji ima puno više bita i koji je "tvrđi" (daje 160 bita). Da li je on dovoljan da bude reprezent lozinke, tj. da li obezbeđuje i da se (sa gledišta najjačih kompjutera današnjice i bliske budućnosti) ne može rekonstruisati od broja NIKAKVA poruka koja će dati isti broj, ne znam. Ali, jak konvencionalni metod preko ovih 160 bita je, po meni, sigurna dobitna kombinacija.
algoritmi.190 kriss,
˙˙ HASH algoritma. Na žalost, čini se da je previše glomazan za Ajd sad ja vas da pitam osnovno :) Kakav je to HASH algoritam? :)
algoritmi.191 niklaus,
(:> Ako smo zaključili da CRC32 prvo daje premalo bita, a, drugo, (:> da je CRC uopšte lako "provaljiv," onda Zaključili? Ja nisam. Molim te pokaži (i dokaži) kako to da je lako provaljiv? Zašto se koristi u popularnom protokolu ZModemu (i svim manje popu- larnim posle njega)? Jednom sam već, nekako apstraktno, rekao da se za 100-njak godina intenzivnog korišćenja modema korisniku neće desiti da ZModem-u "promakne" neki "šum-bit". Pitaj Boga na šta će komunikacije da liče za već 10-ak godina. (:niklaus:)
algoritmi.192 dejanr,
>> > Ako smo zaključili da CRC32 prvo daje premalo bita, a, drugo, >> > da je CRC uopšte lako "provaljiv," onda >> >> Zaključili? Ja nisam. >> Molim te pokaži (i dokaži) kako to da je lako provaljiv? >> Zašto se koristi u popularnom protokolu ZModemu (i svim manje popu- >> larnim posle njega)? CRC32 je, po meni, vrlo dobar za ono za šta se koristi - zaštita od greške pri prenosu. Međutim, očito ima premalo bitova za "ovo drugo", tj. zaštitu od namernog napada. >> Jednom sam već, nekako apstraktno, rekao da se za 100-njak godina >> intenzivnog korišćenja modema korisniku neće desiti da ZModem-u >> "promakne" neki "šum-bit". Hmmm... osećam se jako matoro :) Meni je bar jednom download sasvim normalno prošao, kad ono greška u ZIP-u. Pošto sam slučajno još bio on-line kada sam grešku primetio, ja preimenujem PAD pa ga ponovo skinem, kad ono razlikuju se u podosta bajta jednog sektora. A CvRC, verovatno, isti. Verovatnoća jeste mala, ali mislim da nije baš toliko mala!
algoritmi.193 kale,
>> Međutim, očito ima premalo bitova za "ovo drugo", tj. zaštitu od namernog >> napada. Nije greda u malo bitova, to bi se dalo povećati, nesreća je što bi se dao iskonstruisati bez proveravanja značajnog dela mogućih originala. Ako bi imali algoritam koji radi, broj bitova bi verovatno bio stvar implementacije.
algoritmi.194 peca.st,
!-> Šta nam ostaje? Kvalitetni algoritmi konvencionalne !-> kriptografije, (znate oni, što se pišu silne knjige o njima, Ok. E, sad kad bi još imao neki primer za to - pa gde bi nam bio kraj. :)) Peđa.
algoritmi.195 janko,
> (:> Ako smo zaključili da CRC32 prvo daje premalo bita, a, > drugo, (:> da je CRC uopšte lako "provaljiv," onda > > Zaključili? Ja nisam. Tvoj problem. ;) Nisi pažljivo čitao. > Molim te pokaži (i dokaži) kako to da je lako provaljiv? Brkaš kontekste. Pričali smo o algoritmu za reprezentaciju pristupnih lozinki sistemu, a ne za proveru "napada šuma." Baš u ovoj temi, skoro, pojavila su se čak dva (doduše, sa istom idejom) dokaza da je CRC za te primene izuzetno lako provaljiv. > Zašto se koristi u popularnom protokolu ZModemu (i svim > manje popu- larnim posle njega)? Zato što tu služi svrsi detekcije šum bitova, uz određena ograničenja koja imaju smisla u datim realnim uslovima. > Jednom sam već, nekako apstraktno, rekao da se za 100-njak > godina intenzivnog korišćenja modema korisniku neće desiti > da ZModem-u "promakne" neki "šum-bit". CRC32 detektuje SVAKI šum bit, ako je razmak između prvog i poslednjeg šum bita u poruci koju štiti manji od trideset dva bita. Preko toga, nije dizajniran da obavezno detektuje, ali, nekad mu uspe.
algoritmi.196 janko,
> kad bi još imao neki primer za to - pa gde bi > nam bio kraj. :)) Kamo lepe sreće, za to "gde bi nam bio kraj." Imam "neki primer za to," a i svi ostali -- ceo sors PGP-a je, ako se sećam, u nekom Sezamovom direktorijumu. Ali ne nadajte se da je to nešto što ide u tri reda. ;) Kvalitet se ne postiže bezbolno.
algoritmi.197 janko,
> Kakav je to HASH algoritam? :) Heš funkcijama, ili, našim terminima, funkcijama rasutog adresiranja, obezbeđuje se, obično, što ravnomernije "rasipanje" većih ulaznih veličina u neki manji prostor. Ove funkcije su jedan od fundamentalnih metoda u današnjoj računarskoj tehinci.
algoritmi.198 janko,
>>> Međutim, očito ima premalo bitova za "ovo drugo", tj. >>> zaštitu od namernog napada. > > Nije greda u malo bitova, to bi se dalo povećati, nesreća > je što bi se dao iskonstruisati ...neki ekvivalent originala... > bez proveravanja značajnog dela mogućih originala.
algoritmi.199 paki,
­> Hmmm... osećam se jako matoro :) Meni je bar jednom download sasvim ­> normalno prošao, kad ono greška u ZIP-u. Pošto sam slučajno još bio Mi 2 :)
algoritmi.200 slom,
Evo ga jedan program a vi probajte da otkrijete koji mi je password. Ne kazem da je funkcija dobra/losa jer ni sam ne znam, jednostavno iskopao sam parce koda, malko ga prepravio pa da vidimo. Username: slom Password: <- ovo treba da otkrijete Rezultat transformacije je: swdrtpgzb uslovi: username - minimalno 3, maksimalno 10 slova (mala=velika) password - minimalno 3, maksimalno 10 slova+cifara (mala<>velika) sm convert.zip
algoritmi.201 prvul,
Ů Evo ga jedan program a vi probajte da otkrijete koji mi je password. Ů▄▄ A kada sam hteo da napišem FAQ o kriptografiji, kompresiji i sličnim stvarima rekli su da je malko preterano... :( Dakle, nemojte slati programe uz poruke sadržaja sličnog citiranom. Opišite lepo algoritam pa ćemo ga onda analizirati i videti koliko je dobar i za šta. Ako pošaljete samo program, treba da znate nekoliko stvari: 1) Ako bude potrebno, iz svakog programa će se izvući algoritam, tako da tajenje algoritma nije nikakva zaštita od pravih hakera. 2) Program koji priložite jako malo ljudi će uopšte hteti da dl-uje (ja sigurno ne), a još manje da ga razbija... nema motiva: a) materijalno se tim razbijanjem ne dobija ništa b) neće se proslaviti time c) nije izazov Ovo pod b) i c) je iz prostog razloga što neko ko je razbio zaštite nekoliko svetski poznatih paketa nema razloga da "poene" nabija na nečijim amaterskim pokušajima, a baš takvih se treba plašiti. Sve u svemu, ako hoćete da napišete algoritam pa da ga "evaluiramo", ok. Ako nećete, onda algoritam verovatno nije dobar, jer dobar algoritam je po pravilu onaj koji štiti i onda kada je poznat.
algoritmi.202 kale,
>> CRC32 detektuje SVAKI šum bit, ako je razmak između prvog i >> poslednjeg šum bita u poruci koju štiti manji od trideset dva >> bita. Preko toga, nije dizajniran da obavezno detektuje, ali, >> nekad mu uspe. Da mi je tu sveska iz predmeta "Osnove Računarskih Telekomunikacija", sad bih se ja "setio" garancija koje daje tridesetdvobitni CRC koji je tada koristio USA DOD (Department Of Defence). Ovako, po sećanju, mislim da detektuje sve greške gde je promenjeno do 5 bita i sve greške gde je promenjen neparan broj bita.
algoritmi.203 slom,
OK, nije mi bila namera da krijem algoritam. Evo ga ide i source. sm PS: dakle koji je password ? convert.c
algoritmi.204 debelijencija,
!=?> Mogli bi da ovo nastavite kroz mail ili u conf igre. Zar !=?> nemati ni malo milosti i pristojnosti? Milost? Pristojnost? žemu te teške reči? Naime, ovde se raspravlja o tome koji su principi za pravljenje jedne simulacije igranja fudbala. Jednom rečju, pokušavamo da pronađemo _algoritam_ za to. Zar i pisanje igara ne spada pod pisanje programa? I to su takođe algoritmi! Dakle, koliko mi se čini, mi smo pogodili temu, a vi niste ni čitali te poruke... :( Ako nisam u pravu (a jesam :) neka me moderator, ili neki drugi nadležni ispravi.
algoritmi.205 janko,
>>> CRC32 detektuje SVAKI šum bit, ako je razmak između >>> prvog i poslednjeg šum bita u poruci koju štiti manji od >>> trideset dva bita. Preko toga, nije dizajniran da >>> obavezno detektuje, ali, nekad mu uspe. > > Da mi je tu sveska iz predmeta "Osnove Računarskih > Telekomunikacija", sad bih se ja "setio" garancija koje > daje tridesetdvobitni CRC koji je tada koristio USA DOD > (Department Of Defence). I ja sam pisao po sećanju. I nastavljam, tako mi je lakše, a dovoljno je... > Ovako, po sećanju, mislim da > detektuje sve greške gde je promenjeno do 5 bita i sve > greške gde je promenjen neparan broj bita. Evo, preciznije: ovaj CRC32, koji se naširoko koristi, (mislim da je neki standard, mrzi me da jurim) detektuje sve greške u kojima je prvi bit greške razmaknut od poslednjeg za manje ili jednako 32 bita, što je i logično. Ona priča, da detektuje sve neparne, izgleda da ne stoji, jer polinom na kome se zasniva, za razliku od onih, koje smo radili na predavanjima, nema (x-1) faktor u sebi! Nisam našao knjigu u kojoj su objasnili zašto su standardizovali polinom koji se ne slaže sa tom elementarnom teorijom.
algoritmi.206 dragisha,
-> U svakom slučaju, četiri milijarde je opet dosta manje od npr. -> 1e64, (sve 10-slovne lozinke, npr.) Eto, i Juniks je koristio -> duplo više bajtova, pa su ga "razvaljivali." Da li su algoritmi u -> Juniksu stvarno toliko loši, da se samo zato lako provaljuju? Nikako da shvatim na šta aplaudiraš kad kažeš 'razvaljivali'?:) Unix algoritam se NE ODMOTAVA, samo postoje dovoljno kvalitetni programi koji metodom uzaludnih pokušaja pogađaju lozinku, tj trude se a ako ti je lozinka dovoljno prosta (čitaj glupa:) onda i uspiju.
algoritmi.207 zormi,
* Unix algoritam se NE ODMOTAVA, samo postoje dovoljno kvalitetni programi * koji metodom uzaludnih pokušaja pogađaju lozinku, tj trude se a ako ti je * lozinka dovoljno prosta (čitaj glupa:) onda i uspiju. BTW, imam programčić koji Novell serveru pošalje username, a onda nekim sistemskim pozivima pokušava da pogodi password za njega. Tim metodom uspeva da isproba reda 10-tak lozinki/sekundi! Počne sa jednoslovnim (A, B, C,...) pa dvoslovnim itd. Gruba procena kaže da može u konačnom vremenu da napipa sve razumne lozinke koje se sastoje samo od 5-6 slova. Zato je moj password duži od 10 slova, ima i "neslova" i počinje sa Z ;)
algoritmi.208 janko,
> Nikako da shvatim na šta aplaudiraš kad kažeš > 'razvaljivali'?:) Da nisu neki razvaljivali, ne bi sad projektanti sakrivali mesto gde je pravi uzorak? To što se šeta okolo džabe, o čemu si pisao, sigurno nije nešto što predstavlja vrh "razbijačke" nauke. Najverovatnije je čist amaterski proizvod, koji je pisao neko ko se time ne bavi profesionalno. Razbijanje je vrlo unosna stvar... ali i skupa -- obično zaposliš nešto bolje od obične Juniks mašine, ili, ne daj bože, pisija. Naravno, ako takvi programi nekome provale šifru, i treba da mu je provale! > Unix algoritam se NE ODMOTAVA, samo postoje dovoljno > kvalitetni programi koji metodom uzaludnih pokušaja > pogađaju lozinku, tj trude se a ako ti je lozinka dovoljno > prosta (čitaj glupa:) onda i uspiju. Dakle, ti programi ne rade u našoj maloj zemlji, jer mi ne koristimo engleski za lozinke (valjda) :) Usput, ako imaš neku PD verziju Juniksa, sa sorsom, baš bi mogao da iščupaš sors tog dela programa, vidiš da se ljudi lome za tim. > -> U svakom slučaju, četiri milijarde je opet dosta manje > od npr. -> 1e64, (sve 10-slovne lozinke, npr.) Eto, i Au greške, ovde sam omašio za neznase nula! :( Sve desetoslovne lozinke su 64 na deseti, tj. jedva nekih 1e18. Eh, to SWAP dugmence (na mnogo je zgodnom mestu :) Što se niko nije bunio?
algoritmi.209 miljko,
>­ Počne sa jednoslovnim (A, B, C,...) pa dvoslovnim itd. >­ Gruba procena kaže da može u konačnom vremenu da napipa >­ sve razumne lozinke koje se sastoje samo od 5-6 slova. To mi liči na vremenski nestabilan algoritam za detekciju šifri. Naime u naivnom pristupu detekciji lozinki on poredeći slova svaki put kad naidje na pravo slovo potroši nešto više vremena prelazeći na sledeće, što se može detektovati. Uz malo statistike (više pokušaja pa prosečno vreme i sl.) lozinke se mogu probiti. Ja sam svojevremeno imao programčić na tu temu koji je zaista mogao da detektuje lozinku (u većini slučajeva). Odustao sam kad sam shvatio da se lozinke pamte drugačije. Zanima me kako Novell pamti lozinke, odnosno kako funkcioniše dotični program ?
algoritmi.210 janko,
> To mi liči na vremenski nestabilan algoritam za detekciju > šifri. Naime u naivnom pristupu detekciji lozinki on > poredeći slova svaki put kad naidje na pravo slovo potroši > nešto više vremena prelazeći na sledeće, što se može > detektovati. Uz malo statistike (više pokušaja pa prosečno > vreme i sl.) lozinke se mogu probiti. > > Ja sam svojevremeno imao programčić na tu temu koji je > zaista mogao da detektuje lozinku (u većini slučajeva). > Odustao sam kad sam shvatio da se lozinke pamte drugačije. > > Zanima me kako Novell pamti lozinke, odnosno kako > funkcioniše dotični program ? Iskreno se nadam, ne tako kako si opisao. :) Svaki normalan algoritam koji konvertuje lozinku u nešto drugo što pamti, ako radi različito vreme za različite lozinke, to nije u funkciji broja pogođenih slova! Ideja je stvarno lepa, moguće je da postoje uslovi gde se i to može primeniti, ali, ne znam, za sada, gde.
algoritmi.211 dr.grba,
>> BTW, imam programčić koji Novell serveru pošalje username, a onda >> nekim sistemskim pozivima pokušava da pogodi password za njega. Tim >> metodom uspeva da isproba reda 10-tak lozinki/sekundi! A šta ako je uključen intruder checking? I blokira stanicu posle npr. petog pokušaja?
algoritmi.212 niklaus,
(:> Brkaš kontekste. Pričali smo o algoritmu za reprezentaciju (:> pristupnih lozinki sistemu, a ne za proveru "napada šuma." Ne brini se - pažljivo sam čitao sve poruke vezane za metode otkrivanja grešaka (uklučujući i tvoje). Vidiš, napisao sam "metode otrivanja grešaka", a te metode se koriste i u transferu podataka, i u što osetljivijoj enkripciji šifara, i ko zna čega još. "Šum" u slučaju specifične, pogrešno unete šifre, je trenutak kada CRC ne "otkriva" grešku... (:>> Zašto se koristi u popularnom protokolu ZModemu (i svim (:>> manje popu- larnim posle njega)? (:> (:> Zato što tu služi svrsi detekcije šum bitova, uz određena (:> ograničenja koja imaju smisla u datim realnim uslovima. Naravno, ristanu se (kako on kaže) desilo jedared. Meni nijednom, tebi (verovatno) nijednom - mirni smo do starosti... (; (:> CRC32 detektuje SVAKI šum bit, ako je razmak između prvog i (:> poslednjeg šum bita u poruci koju štiti manji od trideset dva (:> bita. Preko toga, nije dizajniran da obavezno detektuje, ali, (:> nekad mu uspe. Nije SVAKI. Znaj da svaka egzaktna i konačna formula za detekciju grešaka imaće barem još jedan ulazni niz, čije rešenje je isto, ili drugim rečima - kada nastupa "previd greške". (:niklaus:)
algoritmi.213 kale,
>> Nije SVAKI. Znaj da svaka egzaktna i konačna formula za detekciju >> grešaka imaće barem još jedan ulazni niz, čije rešenje je isto, ili drugim >> rečima - kada nastupa "previd greške". žini mi se da si prevideo ogradu - "ako je razmak između prvog i poslednjeg šum bita u poruci koju štiti manji od trideset dva bita". CRC jeste konačan (32bita), ali u uslov za sigurno detektovanje greške je da je i greška konačna (<= 32 pogrešna bita).
algoritmi.214 paki,
­> Naravno, ristanu se (kako on kaže) desilo jedared. Meni nijednom, tebi ­> (verovatno) nijednom - mirni smo do starosti... (; Meni 3-4 puta, poslednji put baš danas... :(
algoritmi.215 niklaus,
(:>­> Naravno, ristanu se (kako on kaže) desilo jedared. Meni (:>­> nijednom, tebi (verovatno) nijednom - mirni smo do starosti... (:> (; (:> (:> Meni 3-4 puta, poslednji put baš danas... :( Mora da postoji objašnjenje. Teoretski je nemoguće toliko "omaški" u tako kratkom periodu, pa još na istom mestu. Moguće je da se SEZAM zeznuo prilikom kopiranja u tvoj PAD (ne znam koja je tačno procedura, tako da je ovo laička pretpostavka). Prvim pogledom na "onu" poruku (SEZAM.5, 11.607), mogu samo da kažem da se slični "efekti" javljaju, kad neki LZW (Lempel-Ziv) algoritam za kompresiju omane. Konkretno,u slučajevima da je jedan karakter u kompresovanom fajlu na silu promenjen, tako da dolazi do promene prilikom dekodiranja iz LZWovog "rečnika". (;ko razume - shvatiće) Inače, baš sam tragao za porukom, koju si citirao kao primer lošeg ponašanja ZModema - ne nađoh je. Koja je u pitanju? (da malo bolje proučim) (:niklaus:)
algoritmi.217 niklaus,
(:>­> Naravno, ristanu se (kako on kaže) desilo jedared. Meni (:>­> nijednom, tebi (verovatno) nijednom - mirni smo do starosti... (:> (; (:> (:> Meni 3-4 puta, poslednji put baš danas... :( Još nešto da kažem... To što se desilo tebi, ristanu i ko zna još kome u tako kratkom periodu je opšte uzev nemoguće. Jedno od mogućih racionalnih obajšnjenja bi moglo da bude prevaljivanje krivice na SEZAM (koriste li neki disk-kompesor?), i to u trenutku kopiranja u tvoj PAD. Ovo je čista laička hipoteza, jer ne znam kako taj proces zaista funkcioniše. Da ti prenesem moj prvi utisak kad sam video tvoju poruku 11.607 u konfu SEZAM.5 - podseća me na dearhivirani "corrupted" fajl, kompresovan LZW (Lempel-Ziv) algoritmom (ili nekom varijacijom). Malko bombasto zvuči, da objasnim. Do sličnih ponavljanja podstringova u odpakovanom tekst fajlu dolazi u slučaju, kada se "na silu" promeni jedan (ili više) bajt u LZW kompresovanom fajlu. Opet koliko znam, svi disk-kompre- sori koriste upravo LZ? algoritme, jer su run-length (nije potrebno najpre pročitati ceo fajl, radi neke statistike o broju ovog ili onog slovca, već je algoritmu za dekompresiju "sve jasno" dok redno čita fajl). Moguće je da SEZAM ne koristi diks-kompresore, u šta lično verujem jer SEZAM drži do svojih korisnika i sebe. U tom slučaju moguće je da se u SEZAMovom softveru koristi kompresija u nekom trenutku transfera po mreži. Možda je mreža zakazala? Ko zna? Dejanr? U svakom slučaju, ZModem NIJE zakazao (sigurno ne svih 4-5 puta). (:niklaus:)
algoritmi.218 dejanr,
>> Moguće je da SEZAM ne koristi diks-kompresore Sezam radi pod Novell-om 3.11. Kao što je poznato, on ne obuhvata kompresiju diska (za razliku od Novell-a 4.0). Dakle, nema kompresije podataka. >> U tom slučaju moguće je da se u SEZAMovom softveru koristi kompresija >> u nekom trenutku transfera po mreži. Ni u jednom trenutku se ništa ne komprimuje dok ide preko mreže. >> U svakom slučaju, ZModem NIJE zakazao (sigurno ne svih 4-5 puta). Možda nije, možda jeste. Ono što smatram empirijski dokazanim jeste da će, ako neko ostavi poruku tipa "desilo se to i to, i imao sam takav i takav neobjašnjiv problem", sigurno u sledećih 48 sati da još nekoliko korisnika prijavi sličan problem, koji im se u ovom ili onom trenutku desio. Stvar je u tome da se pri radu sa računarom svakome povremeno desi nešto nepredviđeno, što je teško objasniti. Da se locira i potvrdi problem potrebno je obično dosta truda, razmišljanja, talenta za dedukciju i, naročito, iskustva. Jednom davno, dok je Sezam bio "mlađi" i imao malo korisnika, desio nam se sličan problem, četiri korisnika je prijavilo da je imalo problem pri raspakivanju pad-a u periodu od možda deset dana. Svi ti slučajevi su detaljno "isleđeni". Jedan korisnik je u stvari imao pokvaren disk, crkao je neki dan kasnije. Drugi je koristio beta verziju PKUNZIP-a. Treći je greškom uradio DEL PAD*.ZIP pa kasnije UNDELETE, naravno, nije se sve dobro oporavilo. žetvrti slučaj je ostao nerazjašnjen. Jednom, mnogo kasnije, više korisnika je imalo takve probleme. Ispostavilo se da su svi skidali PAD-ove sa noda 15... i najzad je ispalo da je nod 15 u kvaru, na neki čudan način. Eno tog računara i dan danas stoji "rashodovan" u nadi da će ga neko popraviti. Sve u svemu, ZMODEM i njegov 32-bitni CRC je nešto čemu možeš verovati ako mesečno download-uješ nekih 100-tinak datoteka - greške će se desiti možda par puta u životu. Ali, ako se sa jednog sistema download-uje preko 30,000 datoteka ili 2 gigabajta (što je otprilike Sezamova standardna statistika), za očekivati je da se desi određeni broj takvih greški. Može neko koga zanima teorija verovatnoće da proračuna koliko je očekivanje.
algoritmi.219 paki,
­> (:> Meni 3-4 puta, poslednji put baš danas... :( ­> ­> Mora da postoji objašnjenje. Teoretski je nemoguće toliko "omaški" u ­> tako kratkom periodu, pa još na istom mestu. Moguće je da se SEZAM ­> zeznuo Period je godinu dana. ­> Prvim pogledom na "onu" poruku (SEZAM.5, 11.607), mogu samo da kažem ­> da se slični "efekti" javljaju, kad neki LZW (Lempel-Ziv) algoritam za ­> kompresiju omane. Konkretno,u slučajevima da je jedan karakter u ­> kompresovanom Da, sigurno je to (jedan blok se preneo kako nije trebalo, i - gle čuda :). ­> Inače, baš sam tragao za porukom, koju si citirao kao primer lošeg ­> ponašanja ZModema - ne nađoh je. Koja je u pitanju? (da malo bolje ­> proučim) Ne znam na šta misliš? 'Ono' su bili citati iz pokojnog TEXTPADA.
algoritmi.220 drpr,
-> Mora da postoji objašnjenje. Teoretski je nemoguće toliko -> "omaški" u tako kratkom periodu, pa još na istom mestu. -> Moguće je da se SEZAM zeznuo Grešiš teoretski je moguće a praktično teško ostvarljivo. Verovatnoća radi sa beskonačnim brojem pokušaja a u praksi se kaže da je "verovatno" da će se neka veličina raspodeliti na taj i taj način. Elem da završim šaljivo ako si gledao film "Rozenkranc i Gildestern su mrtvi" video si kako jedan od junaka baca novčić oko 180 puta i uvek dobija jednu stranu (mislim da je bila galava) a to se po teoriji teško dešava tj. verovatnoća je š .Znači trebalo je da bude pola pola ali nemora da bude tako i teorija sama svojim imenom kaže "verovatnoća". cope
algoritmi.221 drpr,
-> je opšte uzev nemoguće. Jedno od mogućih racionalnih -> obajšnjenja bi moglo da bude prevaljivanje krivice na SEZAM -> (koriste li neki disk-kompesor?), i to u Opet da se nadovežem i meni se prvi put desilo pre jedno mesec dana. Ponovo sam preneo fajl (nije išao u pad) i sve je bilo ok. cope
algoritmi.222 niklaus,
(:> Grešiš teoretski je moguće a praktično teško ostvarljivo. U pravu si! Zapravo bio je to laspup, ili lapsup, kako beše. (; (:niklaus:)
algoritmi.223 dr.grba,
>> i taj način. Elem da završim šaljivo ako si gledao film >> "Rozenkranc i Gildestern su mrtvi" video si kako jedan od >> junaka baca novčić oko 180 puta i uvek dobija jednu stranu >> (mislim da je bila galava) a to se po teoriji teško dešava tj. >> verovatnoća je š .Znači trebalo je da bude pola pola ali nemora Pre nekoliko godina, bejasmo srednjoškolci, jedna ekipa đaka je bila angažovana da crticama meri opterećenja nekih raskrsnica u gradu, ne bi li se postavili semafori. Trebalo je u tabelu po satima udarati recku za svaki bicikl, motocikl, putničko ili teretno vozilo... Jedan drugar je za dva sata dežurstva napravio (čini mi se) oko 600 crtica na "biciklovi". Svi ostali su u to vreme imali 30-40 crtica... Kasnije je priznao da se njegov stariji brat, sportski biciklista, navadio sa kolegama iz kluba pa su pičili u krug non stop tom raskrsnicom (((: Toliko o zakonima verovatnoće, raspodelama i Gausovim zvonastim krivama...
algoritmi.224 a.kircanski,
I, na kraju, koji je alogirtam za šifrovanje passwd fajla na unix-u?
algoritmi.225 janko,
Znate li onaj algoritam za dajdžest teksta koji smo pominjali, iz microb poruke xx? Sad ga nešto gledah, i ubeđen sam da je POGREŠAN. Obratite pažnju: > If t is the operation number (from 1 to 80), and M subscript j > represents the jth sub-block of the message (from 0 to 15), and > <<<s represents a left shift of s bits, then the 80 operations > look like the following: > > TEMP = (A <<< 5) + f subscript t(B,C,D) + E + W subscript t + K > subscript t > > E = D > > D = C > > C = (B <<< 30) > > B = A > > A = TEMP > > After all this, A, B, C, D, and E are added to AA, BB, CC, DD, > and EE, respectively, and the algorithm continues with the next > block of data. The final output is the concatenation of A, B, C, > D, and E. Očigledno, komplet A B C D E reči od po 4 bajta daje na kraju onih magičnih 160 bita dajdžesta. Ali... Od tih 160 bita ISTIH 90 su UVEK PRAZNI po gornjim formulama(!) Pogledajte liniju C = (B <<< 30). Šift po definiciji briše bite koji se pomere. Ostaju samo dva upotrebljiva bita u C, trideset ostaju nule. Isto i u D i E, u svim sledećim iteracijama. Zaključak: algoritam, ovakav, kakav je, je za izbegavanje, do daljeg. Ima li neko "na papiru" (u knjizi ili relevantnom članku) ili "u kodu" ovaj isti algoritam, da vidimo kako izgleda ispravna realizacija?
algoritmi.226 ndragan,
/ Ima li neko "na papiru" (u knjizi ili relevantnom članku) ili / "u kodu" ovaj isti algoritam, da vidimo kako izgleda ispravna Na PDP mašinama si imao RADIX40, skraćeni set znakova, koji je sadržavao A-Z, 0-9. $, blenk i valjda tačku, te nul znak, sve skupa 40 znakova. To čudo je trpalo tri znaka u dva bajta. U tom formatu su u direktorijima pamćena imena fajlova itd. žak i nije išlo po bitovima, nego c1*1600+c2*40+c3 ide do najviše 40**3-1, tj 63999 različitih trojki znakova (u stvari nešto manje, pošto je bilo nekoliko nedozvoljenih kombinacija sa nul znakom). Citirani algoritam (nisam imao živaca ni vremena da implementiram) bi mogao da znači neko slično sečenje suvišnih bitova. Sečenje bi moglo da se ostvari i sužavanjem skupa znakova na recimo neke banke po 32 (velika slova i blenk, mala slova i blenk, cifre i interpunkcija u trećoj banci), sa prefiksnim bajtom pred promenu banke, a dok se nižu znaci iz iste banke moglo bi se trpati po pet bitova u niz, do promene banke. Trebalo bi ipak prvo proračunati koliko se ovakva strategija isplati. If yes, (c).
algoritmi.227 dejanr,
Na zahtev više korisnika, algoritam kojim se rešava jednačina trećeg stepena. Pre svega oznake: ^ je stepenovanje sqrt je kvadratni koren j je imaginarna jedinica. j=sqrt(-1) sh je hiperbolički sinus. sh x = (exp(x)-exp(-x))/2 ash je funkcija inverzna sh. ash x = ln(a+sqrt(x*x-1)); ch je hiperbolički kosinus. ch x = (exp(x)+exp(-x))/2 ach je funkcija inverzna ch. ash x = ln(a+sqrt(x*x-1)); cos je funkcija cos acos je funkcija iverzna cos. Ako u datom jeziku od izverznih funkcija postoji samo atan, može se koristiti acos(x)=arctan(sqrt(1-a*a)/a); abs je apsolutna vrednost pi je broj PI, 3.14159... Jednačina je oblika ax^3+bx^2+cx+d. Pretpostavlja se da je a<>0, jer ako je a=0 to i nije jednačina trećeg stepena. Najpre je treba svesti na oblik: y^3+3py+2q=0. To se radi smenom y=x+b/(3a), u kom slučaju se dobija: 3p=(3ac-b^2)/(3a^2) 2q=(2b^3)/(27a^3) - bc/(3a^2) + d/a Odavde može da se izračuna p i q. Treba izračunati r=+-sqrt(abs(p)). Znak plus se uzima ako je q>=0, a u protivnom je r negativan broj. 1. Ako je p>0 Izračuna se f iz f=ash(q/r^3) Jednačina ima jedan realan koren, y1=-2r*sh(f/3) Jednačina ima dva kompleksna korena, y2=r*sh(f/3)+j*sqrt(3)*r*ch(f/3) i: y3=r*sh(f/3)-j*sqrt(3)*r*ch(f/3) 2. Ako je p<0 2.1 Ako je q^2+p^3>0 Izračuna se f iz f=ach(q/r^3) <-- lako se pokazuje da je q/r^3 nikad po modulu nije manje od 1, dakle ach je definisan Jednačina ima jedan realan koren, y1=-2r*ch(f/3) Jednačina ima dva kompleksna korena, y2=r*ch(f/3)+j*sqrt(3)*r*sh(f/3) i: y3=r*ch(f/3)-j*sqrt(3)*r*sh(f/3) 2.2 Ako je q^2+p^3<=0 Izračuna se f iz f=acos(q/r^3) <-- lako se pokazuje da je q/r^3 uvek po modulu manje od 1, dakle acos je definisan Jednačina ima tri realna korena: y1=-2r*cos(f/3) y2= 2r*cos(pi/3 - f/3) y3= 2r*cos(pi/3 + f/3) 3. Ako je p=0 Jednačina je oblika y^3+2q=0 pa je realno rešenje lako naći kao treći koren iz 2q. Međutim, potrebna su sva tri rešenja: Izračuna se r:=abs(2*q)^(1/3) 3.1 Ako je q<0 y1=r y2=r*cos(2*pi/3)+j*r*sin(2*pi/3); y3=r*cos(2*pi/3)-j*r*sin(2*pi/3); 3.2 Ako je q>0 y1=-r y2=r*cos(pi/3)+j*r*sin(pi/3) y3=r*cos(pi/3)-j*r*sin(pi/3) 3.3 Ako je q=0 Trostruko rešenje y1=y2=y3=0 Pošto su određena tri rešenja transformisane jednačine, rešenja osnovne jednačine su: x1=y1-(b/(3a)) x2=y2-(b/(3a)) x3=y3-(b/(3a)) Srećno :)
algoritmi.228 nboskovic,
*> Na zahtev više korisnika, algoritam kojim se rešava *> jednačina trećeg stepena. Na Sezamu u direktorijumu R:\IBMPC\C ima arhiva u kojoj se nalaze sorsovi za rešavanje mnogih matematičkih problema. Među tim sorsovima ima i rešavanje jednačine do 36-og stepena. Mogu vam reći da program, na mašini koja ima koprocesor, nalaženje 36 nula radi gotovo trenutno :) Treba probati. Do ovog programa sam došao zahvaljujući mjovi dok smo bezuspešno pokušavali da rešimo naveden problem :) Ako ne predstavlja kršenje nekih prava i sl. mogu da pošaljem EXE fajl tog programa. (c) klap nikola
algoritmi.229 dejanr,
>> Među tim sorsovima ima i rešavanje jednačine do 36-og stepena. Program verovatno koristi neki od numeričkih metoda. Jednačina 5-tog, 6-tog i višeg stepena ne može (u opštem slučaju) da se reši na način na koji smo navikli, tj. da se dobije nešto kao: rešenje je a*b-c^2 gde su a, b i c koeficijenti. Govorili smo o egzaktnom rešavanju (realna i kompleksna rešenja) jednačine trećeg stepena. Međutim, onaj kome treba rešenje u obliku broja (a to je najčešće u praksi i potrebno, dobiješ x=23.128575 i "baš te briga" koja je to funkcija od koeficijenata), zaista će dobro proći sa numeričkom varijantom. Hvala što si nam skrenuo pažnju na program.
algoritmi.230 niklaus,
(:> Program verovatno koristi neki od numeričkih metoda. Da nije onaj sistem za postepeno traženje binoma (oblika (x-a)) delilaca polinoma P(x). Naime zna se da za nula polinoma, koje su realne važi: a=p/q ; gde je a0 (slobodni koeficijent) deljivo sa p an (koeficijent uz xžn) deljivo sa q ...pa se proveri za svaku od kombinacija p/q. Ovde je malo veći pro- blem izvršiti podelu P2(x)=P(x)/(x-a), nakon čega ide GOTO 10. (; Da li nalazi i konjugovano-kompleksna rešenja? (:niklaus:)
algoritmi.231 janko,
> / Ima li neko "na papiru" (u knjizi ili relevantnom > članku) ili / "u kodu" ovaj isti algoritam, da vidimo > kako izgleda ispravna > > Na PDP mašinama si imao RADIX40, skraćeni set znakova, > ... > > Citirani algoritam (nisam imao živaca ni vremena da > implementiram) bi mogao da znači neko slično sečenje > suvišnih bitova. Sečenje bi moglo da Asocijacija ti je loša. Citirani algoritam je parče celog, koji je u microb xxx poruci, ima jaku kriptografsku osnovu itd. Inače, taj članak, čiji je elektronski oblik pomenuta poruka, je izašao u novembarskom Bajtu, sa potpuno istim tekstom, za koji verujem da je pogrešan. Ko ima pristup Biksu, mogao bi da pita samog autora, ako je raspoložen, šta stvarno treba da se nalazi u inkriminisanoj liniji? Ili, da nije izašla ispravka u decembarskom Bajtu? Ili će izaći u januarskom, ne znam kakva im je tehnologija?
algoritmi.232 snemcev,
Jel zna neko kako se iz matičnog broja građanina može "izvući" pol? Datum rođenja su prvih sedam cifara, poslednja je kontrolna, a ono između su pol, mesto rođenja i nekakav uslovno rečeno redni broj. Koja cifra je pol?
algoritmi.233 mirkot,
>> Jel zna neko kako se iz matičnog broja građanina može "izvući" >> pol? 10, 11 i 12 cifra su redni broj za taj dan. Od 0 do 499 su muškići, a od 500 do 999 su devojčice. Mirko
algoritmi.234 vitez.koja,
#=> 10, 11 i 12 cifra su redni broj za taj dan. Od 0 do 499 #=> su muškići, a od 500 do 999 su devojčice. Prvo (pa) muško :))
algoritmi.235 snemcev,
>> 10, 11 i 12 cifra su redni broj za taj dan. Od 0 do 499 su muškići, a >> od 500 do 999 su devojčice. Tnx. Ovo mi je jako trebalo, kopao sam po kojekakvoj dokumentaciji, usput pronašao gomilu stvari za koje nisam ni znao da ih imam, ali ovo nisam našao. Tnx again.
algoritmi.236 dr.grba,
>> usput pronašao gomilu stvari za koje nisam ni znao da ih imam, ali 'Ajd' sad, podeli tu gomilu sa nama (((:
algoritmi.237 salex,
Simpleks algoritam ? Zna li neko za knjigu u kojoj je lepo opisan Simpleks algoritam iz Linearnog programiranja ? Salex
algoritmi.238 afilipovic,
>> Simpleks algoritam iz Linearnog programiranja ? Prilicno je fino i sa teoretske i sa prakticne strane dat u: "Linearno programiranje", Zelimir Vuckovic, " Savremena administracija " Pozdrav, Nenad
algoritmi.239 ppekovic,
>> Zna li neko za knjigu u kojoj je lepo opisan >> Simpleks algoritam iz Linearnog programiranja ? Algoritmi i programi iz operacionih istraživanja by Slobodan Krčevinac, Jovan Petrić, Milutin župić & Ilija Nikolić u izdanju Naučne knjige iz Beograda. Tamo su dati algoritmi i programi na Fortranu. Ako te mrzi da prekucavaš, pitaću autore da li je source PD (pošto je već objavljen u knjizi) pa ću ga eventualno okačiti ovde ako si zainteresovan? Paya
algoritmi.240 kenza,
(;> Zna li neko za knjigu u kojoj je lepo opisan (;> Simpleks algoritam iz Linearnog programiranja ? Matematicko Programiranje Autori su V.Vujicic,M.Asic i N.Milicic. Poglavlje 4.2 - Simpleks Metoda (69.strana) p.s. Srecno ;) Trebace ti :)
algoritmi.241 isekulovic,
Ovde je skoro bila rasprava o algoritmu za sifrovanje passworda na bbs-ovima i koliko se sećam nije nadjen zadovoljavajući algoritam. Da li je ovaj možda odgovarajući. Inače ovaj source se nalazi u arhivi DDJ9311.zip, mislim da ima na sezamu, ako nema ima na ffs-u. ivan (* ------------------------------------------------------------------------- *( ** palpak.pas -- Algorithm #13: Palindrome Encryption ** ** --------------------------------------------------------------------------** ** Demonstrates data encryption technique for producing keys or signatures, ** ** Microsoft Calendar files, for example, begin with signature bytes formed ** ** by applying the algorithm to the word Calendar. There is no known ** ** recovery method for restoring text encrypted using this method. ** ** Copyright (c) 1993 by Tom Swan. All rights reserved. ** )* ------------------------------------------------------------------------- *) program PalPak; var S1, S2: String; function Uch(C: Char): Integer; begin if (C in ['a' .. 'z']) then Uch := Ord(C) - 32 else Uch := Ord(C) end; function Lch(C: Char): Integer; begin if (C in ['A' .. 'Z']) then Lch := Ord(C) + 32 else Lch := Ord(C) end; procedure Encrypt(S: String); var I, E, C: Integer; begin I := 1; E := Length(S); while (I <= Length(S)) do begin C := Uch(S[I]) + Lch(S[E]); Write(C, ' '); I := I + 1; E := E - 1 end end; var S: String; begin repeat Write('Enter a string: '); Readln(S); if Length(S) > 0 then begin Write('Encrypted string: '); Encrypt(S); Writeln end until Length(S) = 0; end.
algoritmi.242 janko,
> Ovde je skoro bila rasprava o algoritmu za sifrovanje > passworda na bbs-ovima i koliko se sećam nije nadjen > zadovoljavajući algoritam. Naprotiv, nađena su dva odlična. Osim toga, pronađeno je da nešto nije u redu u BAJTovom tekstu koji se bavio istom temom. Kad smo već kod toga, ima li neko decembarski i januarski BAJT (ja ih nisam dobio) i da li su objavili neku ispravku pomenutog članka iz novembra? Ako nisu, baš bih voleo da neko kontaktira autora i pita ga za objašnjenje inkriminisanog sleda operacija gde se gubi oko 90 bita potrebnog rezultata... > Da li je ovaj možda > odgovarajući. Inače ovaj source se nalazi u arhivi > DDJ9311.zip, mislim da ima na sezamu, ako nema ima na > ffs-u. Ne zadovoljava elementarnu postavku, da se na osnovu signature ne može (lako) rekonstruisati bilo kakav drugi tekst koji će dati istu signaturu.
algoritmi.243 isekulovic,
>> Naprotiv, nađena su dva odlična. Osim toga, pronađeno je da nešto Ups, mora da sam prerano prestao da pratim diskusiju. Može li pointer na poruke u kojima su opisani?
algoritmi.244 bulaja,
Koji je algoritam za odredjivanje kontrolnog broja žiro računa?
algoritmi.245 dejanr,
>> Koji je algoritam za odredjivanje kontrolnog broja žiro računa? Pogledaj Bajtove lične prirode u "Računarima" koji u sredu izlaze :) Bio je i ovde na Sezamu, ako se dobro sećam. Sasvim ukratko, račun dopuniš na 18 cifara ubacujući nule pre poslednje grupe. Recimo, ako 60811-620-16, napraviš ga da bude 608116200000000016. Onda ga propustiš kroz sledeću proceduru: function kbroj(ulaz: string): integer; var i, tmp: longint; begin tmp:=0; for i:=length(ulaz) downto 1 do begin if (red[i]>='0') and (red[i]<='9') then tmp:=tmp+(ord(red[i])-ord('0'))*(length(ulaz)-i+2) else begin kbroj:=-1; exit; end; end; tmp:=11-(tmp mod 11); if tmp>=10 then tmp:=0; kbroj:=tmp; end;
algoritmi.246 zolika,
Ne znam da li je sledećoj poruci mesto u ovoj temi, al' ajde... OBAVEŠTAVAM CENJENE KORISNIKE SEZAMA (KOJE TO ZANIMA) DA SAM DANAS, 25. FEBRUARA 1994. GODINE D I P L O M I R A O. Ovo ne kucam zato da bih se hvalisao, već da bih se ZAHVALIO svima onima koji su svakom svojom idejom, makar i najmanjom, uticali na uspeh mog diplomskog rada i koji su mi pružili pomoć kada mi je bila potrebna.
algoritmi.247 .bale.,
> OBAVEŠTAVAM CENJENE KORISNIKE SEZAMA (KOJE TO ZANIMA) DA SAM DANAS, > 25. FEBRUARA 1994. GODINE > D I P L O M I R A O. Bravo, majstore! :) Je l' proradio BBS? ;-)
algoritmi.248 janko,
> OBAVEŠTAVAM CENJENE KORISNIKE SEZAMA (KOJE TO ZANIMA) DA > SAM DANAS, 25. FEBRUARA 1994. GODINE > D I P L O M I R A O. :) žestitam. Za one koji ne prate (nepostojeću) rubriku lične vesti u konferenciji MALI OGLASI: I ja diplomirah, jedan dan ranije. Na ETF BGD, smer računarska tehnika i informatika. :)
algoritmi.249 dr.grba,
>> D I P L O M I R A O. Moje čestitke. Nadam se da ćeš naći adekvatno plaćen posao.
algoritmi.250 dr.grba,
>> I ja diplomirah, jedan dan ranije. žestitke i iste želje i tebi.
algoritmi.251 asterix,
>>> D I P L O M I R A O. > > Moje čestitke. Nadam se da ćeš naći adekvatno plaćen posao. ^^^^^^^^^^^^ Đirlo maneken ? ... To je dobro plaćen posao. ;)
algoritmi.252 zolika,
>> Bravo, majstore! :) Je l' proradio BBS? ;-) Na komercijalnim osnovama još nije (a čini mi se da i neće), ali je na odbrani diplomskog radio baš kao što treba!!! :-)))))
algoritmi.253 dr.grba,
>> > Moje čestitke. Nadam se da ćeš naći adekvatno plaćen posao. >> Đirlo maneken ? ... To je dobro plaćen posao. Šali nikad kraja. Ali bio sam krajnje ozbiljan u onome što sam napisao.
algoritmi.254 vitez.koja,
#=> Na komercijalnim osnovama još nije (a čini mi se da i neće), ali #=> je na odbrani diplomskog radio baš kao što treba!!! :-))))) A za onaj multitasking šta si uradio? (nije tajna?) sk
algoritmi.255 zolika,
>>>> Đirlo maneken ? ... To je dobro plaćen posao. >> >> Šali nikad kraja. Ali bio sam krajnje ozbiljan u onome što sam napisao. To sam i mislio. Što se džirlo-manekena tiče... možda, ako me baš pritisne besparica :-)))) Uostalom, asterix baš voli da se šali.
algoritmi.256 dr.grba,
>> To sam i mislio. Što se džirlo-manekena tiče... možda, ako me baš >> pritisne besparica :-)))) Uostalom, asterix baš voli da se šali. BTW, jeste li čuli šta Isak Džirlo radi po Sloveniji? Osim što ga voze u autu vrednom 120.000 USD, prodaje prezervative umočene u med (:
algoritmi.257 markom,
*** u autu vrednom 120.000 USD, prodaje prezervative umočene u *** med (: Uhhhhhh, i to neko kupuje, pfhuy :( Marko
algoritmi.259 maksa,
>> Treba mi program u C-u (rutina, funkcija) za generisanje >> Random (slučajnih) brojeva. Računari 88 (Januar 93), strana 77, Bajtovi Godine, slika 8.
algoritmi.260 markom,
Kahm, molio bih poštovani Sezamov auditorijum za malo pažnje i pomoći O:) ------------------------------------------------------------------------- Potrebna mi je rutina, najbolje bi bilo u C-u. Naime, imam jedan string u ko- jem pored normalnog teksta ima i ansi sekvenci, a one tu nisu poželjne ;). Da li ima dobre duše da mi kaže gde to ima (pošto mi se čini da sam tako nešto negde video) ili da pošalje gotovu funkciju. Prilično mi je hitno, pa ako ne ume i zna, nek podeli radost sa mnom :) Unapred zahvalan, Ja :))
algoritmi.261 drakce,
│ Potrebna mi je rutina, najbolje bi bilo u C-u. Naime, imam jedan string u │ kojem pored normalnog teksta ima i ansi sekvenci, a one tu nisu poželjne ;). └───────── Imam source programa u Pascal-u, koji radi sličnu stvar: > CLRESC is a simple filter to remove ANSI escape sequences from a file. > It also removes all graphic characters, replacing them by spaces to > maintain alignment of the non-graphic characters. It is useful in > cleaning up logs of sessions on bulletin boards which use escape > sequences for screen graphics and screen clearing. clresc2.arj
algoritmi.262 markom,
*** Imam source programa u Pascal-u, koji radi sličnu stvar: Ma nema veze, preradiće se to :))) Tnx :)
algoritmi.263 vitez.koja,
(odgovor preko odgovora, iz opravdanih razloga) #=>│ Potrebna mi je rutina, najbolje bi bilo u C-u. Naime, #=>│ imam jedan string u kojem pored normalnog teksta ima i #=>│ ansi sekvenci, a one tu nisu poželjne ;). Ako pretpostavimo da ispisuješ string slovo po slovo, potrebno je uraditi sledeće: kada naiđeš na ANSI escape sekvencu ESC[ preskoči sve do prvog slova, *I* to slovo; ANSI komanda ima oblik ESC[<op1>,<op2>,...,<opn><K>, gde su <op> brojne vrednosti a <K> karakter koji označava komandu. Znači, if(*text==0x5B && *(text-1)==0x1B) while(!isalpha(*p++)); Ja koristim sledeće: void host::ansiputs (char *str) { char *p; p=str; while(*p) { if(*p==0x1B && *(p+1)==0x5B) if(!ansi) skipansi(&p); putch(*p++); } } inline void host::skipansi (char **p) { (*p)+=2; while(!isalpha(**p)) (*p)++; (*p)++; } ... pri čemu je ansi neka (globalna) promenljiva koja određuje da li su ansi sekvence dozvoljene.
algoritmi.264 mbole,
Da li ima neko generatore slučajnih brojeva koji se uklapaju u određenu raspodelu? Neophodna mi je gama raspodela, a neću se ljutiti ni za ostale. Poželjno u Paskalu.
algoritmi.265 mirche,
> Ma nema veze, preradiće se to :))) Tnx :) BTNJ, Jel' treba nekom program tp2tc (com ili exe -ne sećam se) koji prevodi pascal source u c source. (osećam da je neka glupost al' kome treba daću mu da ispita.)
algoritmi.266 sbrk,
>> BTNJ, Jel' treba nekom program tp2tc (com ili exe -ne sećam se) koji >> prevodi pascal source u c source. Koja verzija? Ako te ne mrzi, pošalji parče READ.ME fajla, ono sa zaglavljem itd...
algoritmi.267 kale,
>> Da li ima neko generatore slučajnih brojeva koji se uklapaju u određenu >> raspodelu? Taj problem se u opštem slučaju deli na 2. Prvo izabereš neki sa linearnom raspodelom pa nad njime generisanim brojevima primeniš odgovarajuću inverznu funkciju. Recimo da želiš raspodelu F(x)=x**2. Imaš niz x1, x2, x3,... koji ima linearnu raspodelu. Niz y(i)=sqrt(x(i)) ima traženu raspodelu. Pozdrav!
algoritmi.268 dejanr,
>> Recimo da želiš raspodelu F(x)=x**2. Imaš niz x1, x2, x3,... koji ima >> linearnu raspodelu. Niz y(i)=sqrt(x(i)) ima traženu raspodelu. Da, to je standardni postupak. Jedino je muka što za mnoge raspodele nije lako (ili nije moguće) odrediti inverznu funkciju od F(x)... recimo mislim da se za generator slučajnih brojeva koji radi po normalnoj raspodeli koristi generator sa uniformnom raspodelom (rnd) pa se onda broj "propusti" kroz neki polinom koji je *približan* inverznoj funkciji.
algoritmi.269 tica,
oo_ BTNJ, Jel' treba nekom program tp2tc (com ili exe -ne sećam oo_ se) koji Treba meni (ali nisam bas optimista da ce da proradi).
algoritmi.270 janko,
> lako (ili nije moguće) odrediti inverznu funkciju od > F(x)... recimo mislim da se za generator slučajnih brojeva > koji radi po normalnoj raspodeli koristi generator sa > uniformnom raspodelom (rnd) pa se onda broj "propusti" > kroz neki polinom koji je *približan* inverznoj funkciji. Ako se sećam, ima još jedan prost način, ali ne znam koliko je efikasan -- svaka raspodela teži normalnoj, ako se sabiraju uzorci, ili "lepe" i tako nekako. Slabiji programeri i kada ne žele dobiju normalnu raspodelu, zbog ovog efekta.
algoritmi.271 ndragan,
/ BTNJ, Ej, šta ti je ovo BTNJ?
algoritmi.272 markom,
*** Ej, šta ti je ovo BTNJ? Koliko sam ja shvatio BTW, ali po juski ćirilici :)
algoritmi.273 dr.grba,
>> Ej, šta ti je ovo BTNJ? Verovatno bdž the njadž (:
algoritmi.274 robert,
>> Ej, šta ti je ovo BTNJ? BTNJ = BTW samo ćirilicom koja je prevedena na latinicu ;)). Isto kao NJINDONJS = WINDOWS :).
algoritmi.275 mirche,
> Ej, šta ti je ovo BTNJ? Znaju ćiriličari. ;) (To je onaj kodni raspored za ćirilicu koji umesto W ima ćirilično Nj umesto Q - Lj i umesto X - Dž, pa je razumljivo od BTW došlo do BTNJ zarad razbijanja monotonije. ;)) UBR po naški je ekvivalent BTW-u. Kad smo već tu evo još jednog: NBTZ - Ne bilo ti zapoveđeno... :)
algoritmi.277 janko,
> Ej, šta ti je ovo BTNJ? A ti kao ne znaš? NJ je ono slovo na tastaturi levo od E. :)) Pa baci pogled na američke tastature... Njhat džou see is njhat džou get = NJDčSINJG Podždrav.
algoritmi.278 mmitrovic,
Ů█▀█Ţ Kad smo već tu evo još jednog: NBTZ - Ne bilo ti zapoveđeno... :) Ili umesto ASAP (As Soon As Posibile) može ŠJPM (Što Je Pre Moguće). ;) _mmix_
algoritmi.279 mmitrovic,
Ů█▀█Ţ Njhat džou see is njhat džou get = NJDčSINJG Fali jedno Dč. _mmix_
algoritmi.280 ndragan,
/> Ej, šta ti je ovo BTNJ? / Znaju ćiriličari. ;) Vrlo dobar, 4+, sedi. Za 5 da otplivaš uzvodno i da nađeš ko je to izmislio ;)
algoritmi.281 mirche,
> izmislio ;) Izmislio? Misliš, UPOTREBIO? Pa i nije bila potrebna neka velika mudrost da se dođe do ovoga. Pri 'preslušavanju' fajla 'himna.bre' upalila mi se ćirilica i, kao i verovatno svi ostali koji su to videli, razvuk'o usta u :) videvši NjindoNjs. Mirche
algoritmi.282 spantic,
> 'preslušavanju' fajla 'himna.bre' upalila mi se ćirilica i, kao i verovatno Kad smo već kod toga. Ima li iko "Bože pravde" kao wav?
algoritmi.283 sbrk,
>> Kad smo već kod toga. Ima li iko "Bože pravde" kao wav? Ja koliko znam ta melodija postoji na Amigi za SoundTracker. Ako ovo čita neki Amigista, neka se javi.
algoritmi.284 magician,
­=> Ja koliko znam ta melodija postoji na Amigi za SoundTracker. Ako ovo ­=> čita neki Amigista, neka se javi. Imam ja kao "mod".
algoritmi.285 ndragan,
/ Izmislio? Misliš, UPOTREBIO? Izmislio, pa upotrebio. / Pa i nije bila potrebna neka velika mudrost da se dođe do ovoga. Pri Nije, samo trenutak nadahnuća. Inače, takav slučaj kao što se tebi desio meni se nije mogao desiti, jer već više od godinu dana ne koristim juski ćirilicu - prešao sam na b.015; drugo, već više od tri godine nemam pendžere na disku.
algoritmi.286 mmitrovic,
Ů█▀█Ţ Imam ja kao "mod". Pa podeli ga s' nama. _mmix_
algoritmi.287 magician,
­=> Pa podeli ga s' nama. Pa, da ga podelim... bogpravd.zip
algoritmi.288 dejanr,
========== security/encryption #770, from ssatchell, 540 chars, Wed Mar 9 00:19:58 1994 Comment to 767. Comment(s). ---------- One of the forgotten facts of DES is that the theory behind the selection of the S-boxes is still classified information. Based on some public comments I've seen over the past few weeks, I've come to suspect that Skipjack uses the same basic scheme as DES uses, only with a longer key and more cycles. People have implemented DES without understanding the theory behind it. I suspect that if we had more information, it would be *easy* to write a version of Skipjack without the law-enforcement field or (shudder) user-definable keys... ========== security/encryption #771, from jrubin, 1508 chars, Wed Mar 9 02:13:39 1994 Comment to 770. ---------- >>DES Sboxes When DES came out, I did a lot of analysis of the Sboxes. As others have reported, they have some peculiar properties: 1) S box 3 does not contain independant permutations. Call the 4 permutations A B C D Then C = A followed by wire crossing D = B followed by the same wire crossing. The result is that toggling one of the input bits leaves the parity of 2 separate pairs of outputs unchanged. 2) In one other case, the S box, which is supposed to be a non-linear function from 6 input bits to 4 output bits, can be expressed in terms of linear operations a smaller non-linear part. I don't remember the details, but it was something like 4 bits -> 3 bits. I never developed a way to exhaustively check for this phenomena. 3) All of the S boxes have linear relations connecting input and output bits which hold EXCEPT FOR A SMALL NUMBER OF STATES. Typically, there are 3 exceptional states. This may be true of randomly constructed S boxes and may not be significant. These facts are suspicious, but by themselves don't seem to lead to a way to crack DES. It might be interesting to examine the problem from the NSA's point of view. You have a cipher like DES, but with different details. How do you choose S boxes that will introduce a subtle weakness? I suspect the "peculiarities" above are artifacts of an attempt to weaken DES. There must be few suitable S boxes, if they had to be as blatant as to choose S3 the way they did.
algoritmi.289 dejanr,
Uz ovu poruku je interesantan prilog Thomasa C. Jonesa pod naslovom "Cipher-Chain-Cipher Mode of Operation for Improving the Security of Block Ciphers". Reč je o, koliko je autoru poznato, originalnoj ideji za unapređenje postojećih kriptografskih algoritama. ========== security/long.messages #246, from peace, 21634 chars, Thu Mar 17 22:56:39 1994 ---------- Fellow cryptorians: The following is a draft of a paper that describes a mode of operation that I personally feel is useful for bulk data encryption for PEM, RIPEM, EDI, PGP and any other secure email application. In particular, submode CC1 is proposed for these applications. I would welcome any suggestions that would help in evaluating this method in those venues. peace at acm.org - - - - - - - - - - - - - - - - - - - - - - Cipher-Chain-Cipher Mode of Operation for Improving the Security of Block Ciphers by Thomas C. Jones 1 ABSTRACT As a way to extend the usefulness of encryption with the DES and prevent several of the more common attacks on the DES, a new mode of operation is defined that can be used with any block cipher, including DES. This mode of operation performs a cipher operation both before and after a chaining operation and so could be called cipher-chain-cipher (CCC) mode of operation. It is characterized by never performing any operation with the plaintext data except immediately after one cipher operation and immediately prior to another, so that cipher operations separate the plaintext and ciphertext in both directions. Thus the common known-text attack and chosen-text attack are avoided and, for some implementations, only two DES operations are required per plaintext block. sifre.zip
algoritmi.290 dgrbic,
Jel neko može da me posavetuje kako da uradim neko jednostavno (i brzo) šifrovanje, a koje se ipak teže provaljuje od nekog xorovanja ili slično? Xorovanje se mnogo lako provali ako znaš početak šifrovanog fajla (npr. MZ za .exe fajlove itd...)