Otázka:
Jaké jsou rozdíly mezi šifrováním a solí?
Gabriel Fair
2015-02-05 05:38:12 UTC
view on stackexchange narkive permalink

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ů.

vaše slova se zdají jasná - s čím odpověděl váš přítel? v čem byl zmatený?
Kde jste narazili na pojem „šifrovací semeno“? To není standardní pojem. Měli jste na mysli semeno pro generátor pseudonáhodných čísel? Měli jste na mysli „encryption key“? Něco jiného? Dejte nám něco, s čím můžeme pracovat - jinak vám pomůžeme, musíme hádat, co by vám mohlo procházet myslí a myslí vašeho přítele, a čtení mysli je notoricky náchylné k chybám ...
Pět odpovědi:
schroeder
2015-02-05 05:52:43 UTC
view on stackexchange narkive permalink

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.

Velmi zjednodušené vysvětlení, dokud nebudu vědět více o nedorozumění při hře.
Vysvětlení pro seed má smysl pouze tehdy, pokud nejprve pochopíte, že počítače generují pouze pseudonáhodná čísla, a co to znamená.
@Ajedi32, pokud vysvětlení OP zmátlo publikum, pak jsem se nepokusil vysvětlit pseudonáhodnost.
Cort Ammon
2015-02-06 06:57:17 UTC
view on stackexchange narkive permalink

Nejjednodušší pojmy, které mě napadají:

  • Semeno je náhodná hodnota, kterou je obvykle třeba udržovat v tajnosti nebo je šifrování přerušeno
  • Sůl je náhodná hodnota, která obvykle není tajná, a která ztěžuje některé předpočítané útoky

Rád je používám, protože myšlenka utajování věcí nebo ne je pro někoho smysluplná.

seed nemusí být tajný: http://en.wikipedia.org/wiki/Pseudorandom_number_generator#Cryptographically_secure_pseudorandom_number_generators
@schroeder: Myslím, že jste to špatně přečetli na wikipedii: „Podmínkou CSPRNG je, že protivník, který nezná semeno, má pouze zanedbatelnou výhodu v rozlišení výstupní sekvence generátoru od náhodné sekvence. Četl jsem, že „(protivník neznal semeno) má jen zanedbatelnou výhodu ...“ Pokud znáte semeno, můžete dokonale předpovědět výstup PRNG v polynomiálním čase, což je ReallyBad.
Obecným pravidlem je, že primárním cílem kryptografických PRNG je udržet útočníka co nejdále od vnitřních hodnot (jako jsou semena), jak je to lidsky možné. Jako příklad není důvod, proč se Mersense Twister nepovažuje za kryptografický, protože můžete obnovit semeno pomocí 624 sekvenčních výstupů a poté můžete dokonale předvídat výstup Twisteru.
máte naprostou pravdu, celou dobu jsem měl nedorozumění. Přečetl jsem si pokyny NIST a podporují vaše tvrzení: http://csrc.nist.gov/publications/drafts/800-90/sp800-90a_r1_draft_november2014_ver.pdf Oddíl 8.6.6
moje nedorozumění vyplývalo z požadavku na opětovné načtení, což jsem pochopil tak, že i kdyby bylo známé semeno, mělo by malou hodnotu pro šifrování vytvořené z této hodnoty, což není správné, ale toto opětovné načtení chrání CSPRNG jako celek.
John Deters
2015-02-05 07:31:23 UTC
view on stackexchange narkive permalink

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. )

Jo, zdá se, že překrývající se výrazy způsobují při úvahách o abstraktních pojmech hodně zmatku. Například bych stále typicky říkal, že „nasazuji“ bezpečný RNG zdrojem entropie. Potřebuji lingvistu STAT!
munchkin
2015-02-06 15:02:46 UTC
view on stackexchange narkive permalink

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.

TRex22
2015-02-05 16:54:35 UTC
view on stackexchange narkive permalink

Š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.

Mám několik příkladů kódu ze živých podnikových systémů, které mám povoleno zveřejnit jako příklady, pokud by to pomohlo cokoli objasnit.
Tato odpověď se zdá být trochu zmatená / matoucí. Neexistuje nic jako „šifrovací sůl“. Sůl se používá s hashováním, které není stejné jako šifrování. Podobně neexistuje nic jako „šifrovací semeno“. Nikdy jsem neslyšel, že by nějaký kryptograf nazýval semeno pro PRNG „šifrovacím semínkem“ - je to semeno pro PRNG, nebo jen semeno, ale ne „šifrovací semeno“. Možná upravit za účelem úpravy vaší terminologie?
SŮL se nazývá SALT. Opravil jsem svou chybu. Slyšel jsem o semeni použitém v šifrovacím algoritmu jako šifrovacím semeni. Semeno může odkazovat na mnoho různých věcí, jako je světové semeno v Minecraftu. Pouhé pojmenování semene by bylo více matoucí.
Sůl se neukládá „místo“ hesla, ukládá se spolu s hashovaným soleným heslem, jak říkáte. Trochu jste si odporovali. Sůl také není vždy náhodná, ale lze ji odvodit z některých uživatelských dat.
Tato odpověď stále obsahuje mnoho nejasností. Nesprávně jste popsali, co je to sůl. Sůl není hash. Sůl není zkratka a není hláskována jako „SOLNÁ“. Nevím, co myslíš tím „skewness“; ta část věty vypadá jako blábol.
Omlouvám se za to, skewness odkazuji je to, co je vytvořeno, když je normální distribuce vychýlená kvůli proměnné v algoritmu ovlivňujícím její výsledek.


Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...