Dnes jsem jen těžko vysvětlil rozdíl příteli.
Vím, že při generování „náhodných“ řetězců se používají semena. A soli se používají při poskytování různých výsledků hash.
Jaký je lepší způsob popisu těchto konceptů a jejich možných rozdílů.
Dnes jsem jen těžko vysvětlil rozdíl příteli.
Vím, že při generování „náhodných“ řetězců se používají semena. A soli se používají při poskytování různých výsledků hash.
Jaký je lepší způsob popisu těchto konceptů a jejich možných rozdílů.
Osivo:
Šifrování je založeno na náhodných číslech, ale jak vygenerujete skutečně náhodné číslo? Aktuální milisekunda? Počet použitých procesorových vláken? Potřebujete výchozí bod. Tomu se říká semeno: nastartuje náhodné číslo.
Sůl:
Když hashujete řetězec, vždy skončí se stejným hash.
foo
= acbd18db4cc2f85cedef654fccc4a4d8
pokaždé.
To je problém, když chcete ukládat věci, které chcete skutečně skrýt (například hesla). Pokud vidíte acbd18db4cc2f85cedef654fccc4a4d8
, vždy víte, že se jedná o foo
. Jednoduše tedy do původního řetězce přidáte „sůl“, abyste se ujistili, že je jedinečný.
foo
+ asdf
= e967c9fead712d976ed6fb3d3544ee6a
foo
+ zxcv
= a6fa8477827b2d1a4c4824e66703daa9
Takže „sůl“ dělá 'hash' lépe zakrytím původního textu.
Nejjednodušší pojmy, které mě napadají:
Rád je používám, protože myšlenka utajování věcí nebo ne je pro někoho smysluplná.
Váš přítel je ve skutečnosti zmatený, protože v tom není velký rozdíl. Na vysoké úrovni se každý používá jako vstup k úpravě výstupu funkce kódování.
Zkuste zdůraznit rozdíl mezi hashovací funkcí a generátorem náhodných čísel a tím, k čemu se obvykle používají. Také umět rozlišovat mezi běžným generátorem náhodných čísel použitým pro statistiku (který může používat předvídatelné nebo známé semeno) a kryptograficky bezpečným generátorem náhodných čísel používaným pro generování tajného klíče (který vyžaduje nezjistitelný zdroj entropie jako semene. )
PRNG (seed) = řetězec náhodných čísel
hash (sůl + heslo) = hashované heslo
Generátor náhodných čísel zdůrazňuje základní povahu počítačů. Nejsou náhodné. Dokonce ani vnímaná náhodnost není náhodná, nýbrž náhodná, ačkoli by se nakonec mohl vytáhnout ten starý klobouk, který kráčí poloviční vzdálenosti k cíli a nikdy ho skutečně nedosáhne.
Šifrovací semeno se používá ke generování pseudonáhodného čísla. Semeno se používá k zahájení generování řady pseudonáhodných čísel a ke zvýšení statistické náhodnosti použitého algoritmu. Nikdy nemůžete skutečně vygenerovat skutečně náhodné číslo pouze pomocí výpočtu, který umožňuje určitou křivku na křivce pravděpodobnosti ukazující rozložení čísel generovaných generátorem pseudonáhodných čísel. Čím větší je pravděpodobnost správného předpovídání, tím pseudonáhodně generované číslo, tím méně bezpečné je šifrování. Semeno je obvykle převzato z doby v okamžiku, kdy dochází k procesu šifrování, protože to je snadná hodnota z počítače. Pokud je semeno sdíleno mezi systémy, může to být soukromý klíč v šifrovacím modelu soukromého klíče / veřejného klíče.
SALT je obvykle náhodně generovaný řetězec, který systém uloží spíše než heslo uživatele. v prostém textu. Vedle SALT musí být uložen hash, který je generován z hodnoty hesla uživatele (zadaného v době provozu) zřetězeného s SALT. To znamená, že systém nikdy neukládá přímo informace o uživateli a spíše porovná hash uložený v databázi nebo datovém úložišti s tím, který vygeneruje, když uživatel zadá své heslo. To je bezpečnější na několika úrovních, například pokud dojde k porušení databáze systému, heslo uživatele nebude přímo vystaveno útočníkovi.