[ hrib @ 20.10.2010. 13:35 ] @
Radim na kriptiranju sa algoritmima (aes, rsa, sha1, ...), te me trenutno zanima postoji li neka funkcija koja bi generirala ključ(eve) za određeni algoritam (konkretno za aes koristim cipher rijndael_256)?
Pozdrav
[ Nikola Poša @ 20.10.2010. 14:44 ] @
Postoji hash() funkcija uz pomoć koje možeš da generišeš hash vrednost nekog stringa, npr.:
Code:
$secureKey = hash('sha256', $textkey);
[ Goran Rakić @ 20.10.2010. 16:56 ] @
Nikola, to je loše. Imaš PKCS #5 ili mhash_keygen_s2k.

Možeš i da generišeš random ključ, ali ponovo ga provuci kroz iteracije i pazi na entropiju/zagrevanje random algoritma.
[ hrib @ 20.10.2010. 18:12 ] @
Hvala.

Nego zanima me nešto u vezi aes-a, ako možete pomoći. Budući da uz ecb moram implementirati još jedan način (uzeo sam cbc, mada mogu bilo koji), potrebni su mi inicijalizirajući vektori.
Problem je u tome što kod dekriptiranja trebam koristiti isti taj vektor koji je korišten kod kriptiranja, ili mi se početak poruke izgubi. Privremeno sam to riješio da uvijek koristim isti vektor, no zanima me koje bi bilo rješenje (npr. zapisati vektor u datoteku ili u bazu)?
Što se događa ako se datoteka kriptira jednom aplikacijom, a pokuša se dekriptirati drugom, ili obrnuto. Kako druga aplikacija prepoznaje vektor koji je korišten u radu prve aplikacije?

Pozdrav
[ Nikola Poša @ 20.10.2010. 19:42 ] @
IV ne mora da bude tajan, ako si u tvom post-u hteo da aludiraš na pitanje njegove bezbednosti. U PHP manual-u piše da čak možeš da ga šalješ zajedno sa cipher text-om, append-ovanog na kraj šifrovane poruke. Na taj način pri svakoj razmeni poruka možeš da koristiš različit IV. Ali naravno, preporuka je da ga generišeš uz pomoć odgovarajuće funkcije.
[ hrib @ 20.10.2010. 19:53 ] @
točno, ne mora biti tajan.
koristio sam mcrypt_create_iv funkciju, međutim, mislio sam da postoji neki elegantniji način od njegova dodavanja na poruku, te kasnijeg dohvaćanja iz poruke da bi se ona po potrebi dekriptirala.

hvala, pozdrav