Algoritm sökes..

Här pratar vi programmering i dessa olika former. Perl, C/C++, Pascal, ADA, Lisp, COBOL, ZX Basic och mm.
Post Reply
klein
Posts: 4886
Joined: 1 April 2002, 02:00
Location: 43,41,41N, 7,15,47Ö

Algoritm sökes..

Post by klein » 3 January 2010, 08:02

Jag vill ha en sträng typ :

"Hej hopp" , nu vill jag ta fram en chksum för den strängen, den måste vara unik, dvs den får inte upprepa sej.

Är det CRC32 man skall köra då?

asphp
Posts: 21
Joined: 23 December 2009, 23:13

Re: Algoritm sökes..

Post by asphp » 3 January 2010, 15:17

absolut inte, SHA-2 är det ända som gäller.

asphp
Posts: 21
Joined: 23 December 2009, 23:13

Re: Algoritm sökes..

Post by asphp » 3 January 2010, 16:11

Wikipedia http://en.wikipedia.org/wiki/Crc32 0301210 kl 15:11 wrote: A cyclic redundancy check (CRC) or (Polynomial Code Checksum) is a non-secure hash function
SHA-2 är en grupp kryptografiska haschfunktioner skapta av NSA. Alla dessa är hittills helt säkra. De kan inte generera två likadana checksummor någonsin. Med tanke på detta så kan de inte ta fram en checksumma från för stor data. SHA-512 vilket är en del av den familjen klarar av data på upp emot (2^128)-1 bits. Källa wikipedia.

klein
Posts: 4886
Joined: 1 April 2002, 02:00
Location: 43,41,41N, 7,15,47Ö

Re: Algoritm sökes..

Post by klein » 9 January 2010, 13:45

SHA2 genera väl ganska långa strängar och den använder väl andra tecken 0-9?
asphp wrote:
Wikipedia http://en.wikipedia.org/wiki/Crc32 0301210 kl 15:11 wrote: A cyclic redundancy check (CRC) or (Polynomial Code Checksum) is a non-secure hash function
SHA-2 är en grupp kryptografiska haschfunktioner skapta av NSA. Alla dessa är hittills helt säkra. De kan inte generera två likadana checksummor någonsin. Med tanke på detta så kan de inte ta fram en checksumma från för stor data. SHA-512 vilket är en del av den familjen klarar av data på upp emot (2^128)-1 bits. Källa wikipedia.

Fader_Berg
Posts: 180
Joined: 2 September 2009, 09:31

Re: Algoritm sökes..

Post by Fader_Berg » 9 January 2010, 19:28

Ju kortare strängar och mindre omfång av tecken, dessto större chans att den kan dupliceras med en annan kombination. Nu behöver man ju inte överarbeta... utan det beror ju på i vilket sammanhang det ska användas. Men om det är ur säkerhetssynpunkt och längden på strängen inte är given så bör du gå på asphp's förslag. Detta eftersom MD5 och SHA1 är uträknade enligt praxis och CRC32 borde inte ens finnas med i diskussionen.

erik_persson
Posts: 1474
Joined: 29 August 2002, 15:19

Re: Algoritm sökes..

Post by erik_persson » 9 January 2010, 19:32

asphp wrote:
Wikipedia http://en.wikipedia.org/wiki/Crc32 0301210 kl 15:11 wrote: A cyclic redundancy check (CRC) or (Polynomial Code Checksum) is a non-secure hash function
SHA-2 är en grupp kryptografiska haschfunktioner skapta av NSA. Alla dessa är hittills helt säkra. De kan inte generera två likadana checksummor någonsin. Med tanke på detta så kan de inte ta fram en checksumma från för stor data. SHA-512 vilket är en del av den familjen klarar av data på upp emot (2^128)-1 bits. Källa wikipedia.
Jag tror att du har missförstått något.

Alla hashfunktioner kan generera samma hash för flera olika inputsträngar. Det är helt uppenbart eftersom hashen har en finit längd - i frågan om sha-1 tex 160 bitar och för SHA-2, beroende på vilken sha-2 som används, mellan 224 och 512 bitar - medan inputsträngen inte har det. Det finns alltså ett begränsat antal hashar men ett oändligt antal möjliga inputsträngar. Det är sålunda OMÖJLIGT att varje tänkbar inputsträng genererar en unik hash.
Vidare så är det så att det (teoretiskt) ska vara omöjligt att givet en strängs hash kunna säga något om en annan strängs hash - alla möjliga utfall av hashfunktionen ska vara lika sannolika oberoende av vad en annan sträng har för hash. Dvs om strängen "hej" har hashen x, så kan du inte säga att strängen "tjoho" *inte* har hashen x.
Utan det kravet så försvagar du den kryptografiska säkerheten av hash-funktionen betydligt!

Jag tror du förväxlar med preimage resistance och kollisionssäkerhet, vilket, i fråga om hashar, avser att givet en hash så är det omöjligt, i betydelsen att det inte är möjligt med nuvarande datorers beräkningskapacitet, att beräkna en annan text som ger samma hash, respektiva att det med dagens datorers beräkningskraft är omöjligt att hitta 2 olika strängar som ger samma hash givet en viss hashfunktion (detta är enklare än det förra).

Med detta sagt så är det *uppenbart* *väldigt* *liten* sannolikhet att 2 olika strängar ska ge upphov till samma hash. Därför kan man i praktiken använda dem som om de vore unika, men de är det *INTE*.

/ep

Fader_Berg
Posts: 180
Joined: 2 September 2009, 09:31

Re: Algoritm sökes..

Post by Fader_Berg » 9 January 2010, 19:48

Så sant... Jag vill tillägga det om det inte framstår som klart i mitt inlägg att... Det är omöjligt att skapa en hash som inte går att duplicera, om antalet permutationer av strängens tecken överskrider hash:ens. Detta oavsett teknologi... SHA2-512 är dock den bästa - inom normen för normal användning - vi har för tillfället.

klein
Posts: 4886
Joined: 1 April 2002, 02:00
Location: 43,41,41N, 7,15,47Ö

Re: Algoritm sökes..

Post by klein » 10 January 2010, 23:45

Nu vill jag inte använda hash för password, utan för skapa korta URL. Det vill jag uppnå är att ha en databas , men inte ha ID nummret på resp post i URL:en, utan ett hash nummer. Detta bara för man skall kunna bygga om DBn med nya ID nummer, men vill hålla nere antalet tecken URL:en.
Fader_Berg wrote:Ju kortare strängar och mindre omfång av tecken, dessto större chans att den kan dupliceras med en annan kombination. Nu behöver man ju inte överarbeta... utan det beror ju på i vilket sammanhang det ska användas. Men om det är ur säkerhetssynpunkt och längden på strängen inte är given så bör du gå på asphp's förslag. Detta eftersom MD5 och SHA1 är uträknade enligt praxis och CRC32 borde inte ens finnas med i diskussionen.

Post Reply