{"id":"c1178","filename":"c1178_krunica_sha3_fix.dok.json","weise3_id":"","tip":"bugfix","naziv":"krunica.js SHA3-256 fix — NIST FIPS 202 verifikacija","kreator":"genesis","datum":"2026-05-30","snippet":"","status":"","prev_weise3":"","bunker_l":"#00d4ff","full":{"tip":"bugfix","naziv":"krunica.js SHA3-256 fix — NIST FIPS 202 verifikacija","c":"c1178","datum":"2026-05-30","sustav":"genesis — public/quantum/krunica.js","server":"EU (217.160.71.124)","git_commit":"11992584","backup":"/var/www/genesis/public/quantum/krunica.js.bak_sha3_bug","problem":{"opis":"krunica.js SHA3-256 implementacija davala krive hasheve — nije bila NIST FIPS 202 kompatibilna","otkriveno":"KRUNICA_STATUS_VERIFIKACIJA.md (files11) + pravi test s NIST vektorima","utjecaj":"Svi WeisE3 hashevi generirani u browseru bili KRIVI — ne podudaraju se s Python hashlib.sha3_256","python_strana":"ISPRAVNA — hashlib.sha3_256 = NIST FIPS 202 (standardna biblioteka)"},"bugovi":{"Bug1_kriticno":{"naziv":"keccakF rho+pi — KRIVA Keccak pi permutacija","lokacija":"keccakF() redovi 85-86","staro":"b[(y + 2*x)*2 % 50] = nl","novo":"const dest = y + ((2*x + 3*y) % 5) * 5; b[dest*2] = nl","objasnjenje":"Keccak pi permutacija mapira (x,y) na (y, 2x+3y mod 5). Formula (y+2x)%25 je potpuno kriva — od 25 pozicija, samo (0,0) bila ispravna."},"Bug2":{"naziv":"Absorb main loop — state[idx*2] preskakao hi-wordove","lokacija":"sha3_256() redak 112","staro":"state[idx*2] ^= ...","novo":"state[idx] ^= ...","objasnjenje":"Int32Array(50) pamti 25×64-bit lane kao parove (lo,hi). Absorb treba XOR-ati u consecutive 32-bit words (0,1,2,...), ne samo parne (0,2,4,...)."},"Bug3":{"naziv":"Absorb padding — isti problem kao Bug2","lokacija":"sha3_256() redak 124","staro":"state[(i/4|0)*2] ^= ...","novo":"state[(i/4)|0] ^= ..."},"Bug4":{"naziv":"Squeeze — citao samo lo-wordove","lokacija":"sha3_256() redak 131","staro":"const lo = state[i*2] >>> 0","novo":"const lo = state[i] >>> 0","objasnjenje":"SHA3-256 output je 32 bytes = 8×32-bit = state[0..7]. state[i*2] citao state[0,2,4,6,8,10,12,14] — samo lo-wordove prvih 8 lana, ne 8 konsekutivnih 32-bit rijeci."}},"verifikacija":{"SHA3_prazno":{"dobiveno":"a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a","ocekivano":"a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a","status":"PASS"},"SHA3_abc":{"dobiveno":"3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532","ocekivano":"3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532","status":"PASS"},"SHA3_dugi_string":{"opis":"200x 'a' — multi-block test","dobiveno":"cce34485baf2bf2aca99b94833892a4f52896d3d153f7b840cc4f9fe695f1387","node_crypto":"cce34485baf2bf2aca99b94833892a4f52896d3d153f7b840cc4f9fe695f1387","status":"PASS"},"WeisE3_kross_jezik":{"input":"WEISE3::test::creator::ctx::FENIX2026","js_hash":"c5c1c089cc4669fc303ab865d811efc9b1fd802146cc36a09af27ad82ac48a52","python_hash":"c5c1c089cc4669fc303ab865d811efc9b1fd802146cc36a09af27ad82ac48a52","status":"IDENTICAN — JS = Python"}},"vaznost":{"sigurnost":"SHA3 nije bio NIST FIPS 202 — svi browser-generiani WeisE3 hashevi bili krivi","interoperabilnost":"Nakon fixa: browser WeisE3 = server WeisE3 = Python WeisE3 — identican hash","EHO4_veza":"EHO4 spec (files11/EHO4_TEMPORALNI_KROMOSOM_PI.md) zahtjeva NIST-sigurnu Krunicu — sada je ispravna","TPRG_veza":"c1176 Mjesečeva vrata koristi Python SHA3 — nije bila afektirana. Sada i JS verze prati."},"otkrivanje":{"izvor":"C:/Users/Desetka/Downloads/files11/KRUNICA_STATUS_VERIFIKACIJA.md","autor_analize":"Opus (prethodna sesija) — pronasao da krunica_PRAVI.js ne postoji u repo-u","sesija":"2026-05-30 — KRUNICA_STATUS_VERIFIKACIJA.md dan CC-u na citanje","akcija":"CC napravio pravi test s NIST vektorima → bug potvrden → fix primijenjen → commit"},"zakon":["ZAKON_1A","ZAKON_32","ZAKON_43"]}}