True random generátor használata hogyan?
Mire fel gondolkozzak logikátlanul?
"Egyszeri és megismételhetetlen, nekem ezt tanították."
Ha készítek egy videót az egyszeri és megismételhetetlen.
A videót digitálisan kódolva veszem a bitjeit. Az nem igaz, hogy a videóból n db bit ismeretében ugyan olyan találati eséllyel jósolható meg az n+1.-ik bit mintha egy true random sorozat lenne, hiszen a videónak van struktúrája. Vagyis egyfajta rend van a videó bitjei között. Ha a videót 7z-vel pl titkosítom vagy valami hasonlóval akkor a statisztikai tesztek véletlenszerűséget fognak mutatni, de akkor sem true random lesz. Akkor is benne van a struktúra mely (legalább elvileg) visszafejthető mely szintén jobb eséllyel előre jósolható n db bit ismeretében (ha n megfelelően nagy) mint egy valódi random. Márpedig true random előállításáról volt szó. Tulajdonképpen vesztességes titkosítást kell csinálni a videón. A hasítófüggvények tulajdonképpen vesztességes titkosítások, hiszen végtelen elemű az értelmezési tartományuk és véges az értékkészletük. Érvényes rájuk a lavinaeffektus, azaz az inputnak egyetlen bitjének megváltoztatása, teljesen más kimenetet ad. Akkor jó egy hash függvény ha nehéz probléma olyan különböző x és y-t találni hogy f(x)=f(y).
"Volt rejtjelzőként csak azt tudom mondani, hogy nagyon elszálltál. Világba, túl bonyolítod a dolgokat."
Jól megfogalmazott tudományosan alátámasztott válaszra vagyok kíváncsi. Tisztelem, hogy rejtjelező voltál, de a tekintélyelv egy érvelési hiba.
A kérdésem ide vonatkozó része egyébként elméleti jellegű, hogy mennyi videóból mennyi true random készíthető.
Tudod írtam neked egy nagyon hosszú választ, de kidobtam. A valós élet nem egészen így működik, ahogy te gondolod, világba bonyolítod. Mentől több 'embertől' való kódot raksz bele annál inkább közelítel a törhetőség felé. Anno az űrből érkező jeleket használtuk fel, kiszűrve a többszörös - ha jól emlékszem 3 vagy 5 - ismétlődést és ennyi.
Nem rossz ötlet a videóból, zajából nyert adat de nem kell túl 'sózni' mert egy idő után visszaüthet. Legyen az natúr, mert ha nem teszteled, egyik függvény ütheti a másikat. Érdekes módon a BM-nek, szovjet testvéreknek megfelelt és a mai napig megfelel ez az eljárás. Nincs túlbonyolítva, analóg-digitális átalakítás, egyetlen szűrés az ismétlődésekre. A mai napig törhetetlen, mert logikátlan a kulcs.
Titkosításra se perc alatt írok neked bármit, fix kulcsokkal, hülye logikával - talán emlékeztek egy pár hónapja írtam egy példát a geometriai függvényekkel való titkosításra a szöveghossz függvényében változó kulcsokkal -, de amit ember alkotott....
Két dolgot említenék meg:
* a #7-es hozzászóló által emlegetett random.org pont rádiós atmoszféra-zajokból generál véletlen-számokat:
amiket aztán teszteknek vetnek alá:
az eredményeket közlik:
* a videókból származó adatok véletlenszerűségének margójára: készítettem egy kis Python-szkriptet:
ami betölt egy csomó, a kepfeltoltes.hu oldalról származó képet, mindegyik közepéről kivesz egy képpontot, és elmenti egy képen:
illetve készít a képpontok színeiről hisztogrammot:
Mint az adatokból látható, a teljesen világos és sötét képpontok előfordulása eléggé kiemelkedő.
Köszönöm a válaszokat.
Érdekes az a Python-os megoldás, de sajna nem tudtam lefuttatni, ennek azaz oka hogy windows-on próbáltam amire nem találtam kompatibilis python modulokat amit felhasználsz.
@SimkoL
Hülye logikával történő random generátort próbáltam már csinálni, teszteltem melyen elbukott, de ez még évekkel ezelőtt volt. Erről letettem hogy csinálok ilyet.
E helyett arra gondoltam, hogy többek között az NSA által is felügyelt az NIST által kibocsátott szabványos kriptográfiai hasító függvényt/függvényeket használok. Az SHA algoritmuscsaládból jó választás az SHA3-512.
Ahogy eddig is mondtam darabokra szedem a videót és ráeresztem a darabokra a megfelelő hash függvényt.
Csak azt nem tudom hogy érdemes csinálni, hogy mekkora darabokat legkézenfekvőbb/optimális hash-elni.
Vehetem képkockánként is, de ehhez előtte dekódolni kell a videót. Lehet szőrözésnek tűnik, de a vesztességes tömörítés miatt nem egyenértékű az információtartalma a videónak, azzal szembe mintha tömörítetlen lenne vagy legalábbis veszettségmentes, meg egyes képkockák csak számítottak a vesztességes tömörítés miatt.
Vagy egyszerűen csak feldarabolom a videót, nem értelmezve a videoformátumot meg semmit csak simán mint egy bináris fájlt, de az továbbra is kérdés hogy mennyi inputból mennyi outputot gyártsak.
Abba igazat adok, hogy "de nem kell túl 'sózni' mert egy idő után visszaüthet". Viszont ott van a feltételes mód. Ha pl veszem a videót ráeresztek egy RSA titkosítást ezt randomizált hosszú jelszóval tömörítem 7z-be majd titkostom truecrypt-el majd kettévágom és egyenként lehash-alom sha3-512-vel majd a 2 hash-t összexor-olom (kizáró vagy) ekkor kaptam 512 bit randomot azaz 64 bitet. Ugyan ezt megcsinálom sok videóval ami csak erre készült egyszeri felhasználásra. Azt ne mondja senki hogy ezzel csökkentettem a biztonságot, vagy ha ezt mondja akkor az egy nagyon erős állítás melyhez nagyon erős bizonyíték kell, sőt a hash-ét lehash-elem meg azt is meg azt is 100 iterációba digitálisan alá is írom majd azt is le hash-elem úgy, hogy a digitális aláírást használom fel mint "sót". Ha valaki azt mondja hogy felesleges ez a sok lépés hiszen csak a számítási időt hosszabbítom meg feleslegesen akkor igaza van. Félreértések elkerülése végett nem áll szándékomba így csinálni, ez csak egy példa volt, hogy attól hogy valami túlbonyolított az nem kauzális összefüggés azzal, hogy attól gyengébb végeredményt ad.
"azaz 64 bitet"
*bájtot
Az említett rakás függvény, eljárás egymásra hatását kellene először vizsgálni, tesztelni. Egy 24 bit szinmélységű képből elvileg 16 millió érték nyerhető - bár ez így nem igaz, mivel 4096 x 4096, mind eltérő színű pixel teljesítené be az elvárást -. Mostanság kicsit belemerültem a képfeldolgozásba, hát lehet érdekes dolgokat tapasztalni. Ha mindenképpen videóból, képből akarsz 'generálni' akkor talán érdemesebb lenne az RGB összetevőket szétszedni, innen-onnan - pixelből - egy-egy byte-ot. Érdemes lenne előtte egy tesztet futtatni a képen, hogy mennyire alkalmas a célra - kevés eltérő színű pixel akkor eldobjuk -
Ha teljesen binárisan kezeljük akkor véletlenszerűen 'kicsippentünk' pár egymást követő bitet - 3, 5, 7... - és összerakjuk egy számmá. Itt is érdemes egy előzetes 'zajossági' vizsgálatot végezni, mert a tömörítésnek is vannak jellegzetességei.
De tényleg nem kell túlbonyolítani. Mentűl több benne az emberi 'erő' annál inkább fog hasonlítani valamire.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!