ANALÝZA (forenzná investigatíva)Exaktná verifikácia binárnych tokov • C2PA • EXIF/IPTC/XMP • DCT

Boja sa, že Polaček vyhrá, tak si vymysleli obrázky

Keď v posledných prieskumoch Jaroslav Polaček vedie, v predvolebnom boji prišla na rad narýchlo vykonštruovaná kauza s obrázkom. Dva na prvý pohľad rovnaké vizuály, dve protichodné tvrdenia o tom, kto je ich pôvodným autorom, a televízna reportáž, ktorá pred komunálnymi voľbami postavila otáznik nad tým, kto od koho kopíroval. Kým bežný divák vidí len obrázok a meno v tabuľke vlastností súboru, digitálna forenzná veda vidí nemennú matematickú stopu. Rozobrali sme všetky dotknuté súbory bajt po bajte – od bezstratového prvotného originálu z umelej inteligencie až po súbory rozoslané e-mailom. Výsledok je exaktný, 100-percentne overiteľný a nepripúšťa žiadnu polemiku.

Primátor mesta Košice Jaroslav Polaček
Primátor mesta Košice Jaroslav Polaček. Foto: Archív KOŠICE:DNES

V článku sa dočítate (Hlavné forenzné zistenia):

Namiesto dohadov predkladáme čistú matematiku a binárnu štruktúru súborov, ktorú si môže každý IT špecialista na svete sám zreplikovať:

  • 100 % zhoda skomprimovaného jadra s Facebookom: Súbory 27554.jpg a 27555.jpg, v ktorých je zapísané meno Annamárie S., nie sú pôvodnými originálmi. Ich obrazové jadro (264 233 B a 259 365 B) je do posledného bitu identické so súbormi, ktoré už prešli kompresiou serverov Facebooku (scontent-vie1-1.xx.fbcdn.net).
  • Dôkaz výmeny „obálky“ (+807 bajtov): Zo surových súborov stiahnutých z verejného Facebooku kandidáta bola odstránená pôvodná 154-bajtová hlavička siete Meta (FBMD) a na jej miesto bola vložená nová 961-bajtová hlavička s menom Annamárie S.
  • Nula časových pečiatok v podvrhnutej hlavičke: Hoci súbory 27554.jpg a 27555.jpg obsahujú v troch poliach vložené meno, v celej ich 961-bajtovej hlavičke sa nachádza presne 0 dátumov a 0 časových údajov (DateTimeOriginal aj CreateDate úplne chýbajú). Z týchto JPG súborov preto vôbec nemožno tvrdiť, kedy vznikli.
  • Neumelo zarovnaný nepárny offset 0x00000061 (97): Nástroj, ktorým bola 961-bajtová hlavička vygenerovaná, zanechal v binárnom kóde špecifickú technickú chybu – porušenie 16-bitového zarovnania podľa štandardu TIFF rev. 6.0. Tento algoritmus sme 100-percentne spätne zrekonštruovali a rovnakú hlavičku sme vygenerovali na meno „© Janko Mrkvička“.
  • Pravý prvotný originál má kryptografickú pečiatku z 12. 9. 2026: Bezstratový súbor ChatGPT Image 14. 9. 2026, 15_21_34.png (2 169 845 B) obsahuje nefalšovateľný kryptografický manifest C2PA v2.2 podpísaný autoritou DigiCert (RFC 3161 TSA: 2026-09-11 22:02:50.864283 UTC), má 0 % JPEG mriežky a 0 výskytov akéhokoľvek mena v metadátach.
EXAKTNÝ DÔKAZ: 3 GENERÁCIE SÚBOROV
Porovnanie 3 generácií obrazových súborov: ChatGPT PNG, Facebook JPG a upravený JPG 27555.jpg
Vizualizácia troch generácií skúmaného vizuálu: 1. Bezstratový PNG originál priamo z OpenAI ChatGPT (2 169 845 B) ➔ 2. Súbor skomprimovaný a stiahnutý z Facebooku (259 519 B) ➔ 3. Súbor 27555.jpg s vloženou 961-bajtovou hlavičkou (260 326 B).

Aby výsledkom našej analýzy porozumel úplne každý – bez ohľadu na to, či je skúsený kryptograf, programátor, novinár alebo bežný čitateľ – musíme si na úvod vysvetliť jeden základný princíp digitálnej fotografie. Každý obrazový súbor v počítači alebo telefóne sa skladá z dvoch prísne oddelených častí: z „obálky“ (hlavičky s metadátami) na samom začiatku súboru a zo samotného „listu vnútri obálky“ (obrazového jadra s pixelmi).

1. Časť súboru: Obálka (Hlavička)

Metadáta na začiatku súboru

Nachádza sa na prvých stovkách bajtov. Pri bežných formátoch (EXIF, IPTC, XMP) funguje ako papierová obálka, na ktorú môže ktokoľvek v priebehu sekundy dopísať alebo prepísať ľubovoľné meno autora – bez toho, aby sa akokoľvek dotkol samotného obrázka vnútri.

2. Časť súboru: List vnútri (Obrazové jadro)

Matematicky zakódované pixely (DQT..EOI)

Tvorí viac ako 99,6 % veľkosti súboru. Začína sa značkou kvantizačnej tabuľky (FF DB / DQT) a končí sa značkou konca obrazu (FF D9 / EOI). Obsahuje státisíce skomprimovaných bajtov, ktoré nesú nezameniteľný matematický odtlačok toho, kto a kedy obrázok uložil.

Celá podstata problému spočíva v tom, že v reportáži „Volebná záhada“ bolo meno v metadátach (EXIF / IPTC / XMP) prezentované ako dôkaz prvotného autorstva. Lenže zatiaľ čo obyčajný text v poli Artist alebo Copyright nie je chránený žiadnym kryptografickým podpisom, samotné obrazové jadro súboru a kryptografické kontajnery umelej inteligencie oklamať nemožno. Poďme sa pozrieť na to, čo presne odhalili čísla.

1. Matematický röntgen: Dva súbory, jedno a to isté Facebook jadro

Položili sme vedľa seba dve skupiny súborov. Prvú skupinu tvoria surové fotografie stiahnuté priamo z verejného Facebooku kandidáta (zo servera CDN siete Meta scontent-vie1-1.xx.fbcdn.net). Druhú skupinu tvoria súbory 27554.jpg (koláž s dodávkou) a 27555.jpg (portrét), ktoré boli neskôr priložené v e-maile a v ktorých figuruje meno Annamárie S.

Keď sme obe dvojice súborov otvorili na úrovni surových bajtov a našli v nich miesto, kde sa končí hlavička („obálka“) a začína sa samotný obrazový prúd (značka DQT (0xFFDB)), objavili sme nasledujúcu zhodu:

Vizuál A • Koláž s dodávkou (1774 × 887 px)

Porovnanie bajtov: Facebook vs. 27554.jpg

1. Surový súbor z Facebooku:
Celý súbor: 264 387 bajtov
Začiatok DQT (hlavička FBMD): 154 bajtov
Od DQT po koniec súboru: 264 233 bajtov
2. Súbor 27554.jpg (s vloženým menom):
Celý súbor: 265 194 bajtov
Začiatok DQT (nová hlavička): 961 bajtov
Od DQT po koniec súboru: 264 233 bajtov
✓ Obrazové jadro (264 233 B) je na 100,0000 % identické!
SHA-256: a0fb0ea8c229e6fb...d1bd299c
Vizuál B • Portrét (1024 × 1536 px)

Porovnanie bajtov: Facebook vs. 27555.jpg

1. Surový súbor z Facebooku:
Celý súbor: 259 519 bajtov
Začiatok DQT (hlavička FBMD): 154 bajtov
Od DQT po koniec súboru: 259 365 bajtov
2. Súbor 27555.jpg (s vloženým menom):
Celý súbor: 260 326 bajtov
Začiatok DQT (nová hlavička): 961 bajtov
Od DQT po koniec súboru: 259 365 bajtov
✓ Obrazové jadro (259 365 B) je na 100,0000 % identické!
SHA-256: a5b4deab3dc41f3f...91093594

Pozrime sa na tie čísla pozorne. V oboch prípadoch platí tá istá elementárna rovnica: ak zo súboru z Facebooku odpočítame jeho 154-bajtovú hlavičku (IPTCDigest FBMD) a namiesto nej prilepíme 961-bajtovú hlavičku s menom (961 - 154 = +807 bajtov), dostaneme na bajt presne veľkosť súborov 27554.jpg (264 387 + 807 = 265 194 B) a 27555.jpg (259 519 + 807 = 260 326 B)!

Interaktívna simulácia dôkazuKliknite na scenár pre porovnanie

Prečo nemohli súbory 27554.jpg a 27555.jpg vzniknúť pred nahrávaním na Facebook?

✗ FYZIKÁLNE A MATEMATICKY NEMOŽNÉ

Keby boli súbory 27554.jpg a 27555.jpg vytvorené pred Facebookom a niekto by ich následne nahral na Facebook:

  1. Servery Facebooku pri každom nahrávaní obrázok znova dekódujú a skomprimujú vlastným enkóderom (zmenia hodnoty DCT koeficientov a zmenšia počet farieb).
  2. Výsledný súbor na Facebooku by mal úplne inú veľkosť obrazového jadra a úplne iný kryptografický odtlačok SHA-256 než pôvodný súbor pred nahraním.
  3. Nikdy v histórii informatiky sa nestalo, aby súbor pred nahraním na Facebook už vopred obsahoval 100 % bitovo identické skomprimované jadro a kvantizačné tabuľky, aké vytvorí až server Facebooku po jeho nahraní.

2. Tri generácie súborov: Čo odhalil prvotný bezstratový PNG originál z ChatGPT?

Ešte silnejší dôkaz prinieslo preskúmanie bezstratového súboru ChatGPT Image 14. 9. 2026, 15_21_34.png s veľkosťou 2 169 845 bajtov (2,17 MB). Na rozdiel od bežných textových polí EXIF, ktoré môže prepísať ktokoľvek, spoločnosť OpenAI pri generovaní obrazu v modeli gpt-image v2.0 vkladá priamo do binárnej štruktúry súboru špeciálny kryptografický kontajner C2PA v2.2 (chunk caBX) s dĺžkou 23 617 bajtov.

1. GENERÁCIA • PRVOTNÝ ORIGINÁL (OpenAI ChatGPT)Pečiatka: 12. 9. 2026 00:02:50.864 SELČ

Súbor: ChatGPT Image 14. 9. 2026, 15_21_34.png (2 169 845 B)

Obsahuje neporušený kryptografický podpis COSE_Sign1 (RSA-PSS SHA-256) s elektronickou časovou pečiatkou DigiCert RFC 3161 TSA (sériové číslo 0x99272CFA5020A6CD) z 11. 9. 2026 22:02:50.864283 UTC (t. j. 12. 9. 2026 o 00:02:50 SELČ).

Unikátnych RGB farieb: 200 130
JPEG 8×8 mriežka: B = 1.0263 (0 %)
Výskyt mena v súbore: 0× (Čistý)
2. GENERÁCIA • KOMPRESIA SERVEROV FACEBOOKU (Meta CDN)scontent-vie1-1.xx.fbcdn.net

Súbory z Facebooku: 264 387 B (koláž) a 259 519 B (portrét)

Pri zverejnení na Facebooku servery spoločnosti Meta odstránili pôvodný 23,6 kB C2PA manifest, stratovo skomprimovali obraz do blokov 8×8 pomocou špecifickej kvantizačnej tabuľky Meta (čím klesol počet farieb z 200 130 na 81 247) a pridali 154-bajtovú hlavičku FBMD.

Unikátnych RGB farieb: 81 247 (-59,4 %)
JPEG 8×8 mriežka: B = 6.2389 (Silná)
Výskyt mena v súbore: 0× (Čistý)
3. GENERÁCIA • SÚBORY S VYMENENOU HLAVIČKOU (27554.jpg a 27555.jpg)Hlavička: 961 B (+807 B oproti FB)

Súbory: 27554.jpg (265 194 B) a 27555.jpg (260 326 B)

Obrazové jadrá (264 233 B a 259 365 B) sú na 100,0000 % identické s 2. generáciou stiahnutou z Facebooku. Prvých 154 bajtov (FBMD) však bolo nahradených 961-bajtovou nadstavbou (Exif + IPTC + XMP) s menom Annamárie S., nepárnym offsetom 0x61 a nulovým počtom časových pečiatok.

Zásadná otázka: Mohol PNG vzniknúť prekonvertovaním fotky z Facebooku?

Aby bola naša analýza stopercentne nepriestrelná, otestovali sme aj opačnú kontrolnú otázku: Čo ak by niekto stiahol JPG z Facebooku (alebo súbor 27555.jpg) a len ho uložil ako PNG?

Ak by PNG vznikol iba dekódovaním JPG a bezstratovým uložením, dekódované RGB hodnoty všetkých pixelov by museli zostať rovnaké ako v JPG (MSE = 0) a v obraze by navždy zostala vypálená 8×8 bloková mriežka JPEG kompresie (B = 6.2389). Náš merací test však dokázal presný opak: PNG súbor nemá žiadnu 8×8 JPEG mriežku (B = 1.0263), obsahuje 2,46-krát viac unikátnych farebných odtieňov (200 130 oproti 81 247) a nesie neporušený kryptografický podpis OpenAI / DigiCert vytvorený priamo nad surovými pixelmi. Ide teda o nespochybniteľný prvotný originál.

ANALÝZA DÁT

Nasledujúca sekcia prináša exaktné technické dôkazy, binárne výpisy a postupy na nezávislú verifikáciu.

Dôkaz č. 1: Binárny röntgen hlavičiek a anomália nepárneho offsetu 0x00000061 (97)

Podľa medzinárodného štandardu TIFF Revision 6.0 (ktorým sa riadi každý EXIF blok v súbore JPEG) musí každá hodnota tagu začínajúca mimo 12-bajtového záznamu začínať na párnej adrese (16-bit word boundary). Štandardné grafické editory (Adobe Photoshop, Lightroom, GIMP, macOS Preview) preto za reťazec s nepárnym počtom bajtov automaticky vkladajú zarovnávací nulový bajt (0x00).

V súboroch 27554.jpg a 27555.jpg však reťazec v poli Artist (0x013B) zaberá v kódovaní UTF-8 spolu s ukončovacou nulou presne 21 bajtov (nepárne číslo: 20 B + 1 B NUL). Nástroj, ktorý túto hlavičku vygeneroval, zarovnávací bajt nevložil, čím nasledujúce pole Copyright (0x8298) posunul na nepárny offset 0x00000061 (97)!

HEXADECIMÁLNY VÝPIS HLAVIČKY (27554.jpg / 27555.jpg • Bajty 0x0000 – 0x03C1)
0x0000: FF D8 FF E0 00 10 4A 46 49 46 00 01 01 01 00 48 00 48 00 00 // SOI + APP0 JFIF (20 B)
0x0014: FF E1 00 84 45 78 69 66 00 00 4D 4D 00 2A 00 00 00 08 00 05 // APP1 EXIF Big-Endian (134 B)
0x0028: 01 3B 00 02 00 00 00 15 00 00 00 4C // Tag 0x013B (Artist), dĺžka 21 B
0x004C: 82 98 00 02 00 00 00 19 00 00 00 61 // ANOMÁLIA: Tag 0x8298 (Copyright) na nepárnom offsete 97!
0x009A: FF ED 00 56 50 68 6F 74 6F 73 68 6F 70 20 33 2E 30 ... // APP13 IPTC (88 B, bez FBMD!)
0x00F2: FF E1 02 CF 68 74 74 70 3A 2F 2F 6E 73 2E 61 64 6F 62 65 ... // APP1 XMP Packet (721 B, 32 B medzery)
0x03C1 (961): FF DB 00 84 ... [264 233 B / 259 365 B] ... FF D9

Celý tento 961-bajtový injektor sme vo forenznom skripte forensic_analyzer.py (funkcia build_injected_headers()) zrekonštruovali so 100-percentnou bajtovou presnosťou. Ako kontrolný vedecký experiment sme rovnakým algoritmom vložili do kontrolných súborov meno „© Janko Mrkvička“ (súbor 27556_Janko_Mrkvicka.jpg), pričom vznikla navlas rovnaká štruktúra IFD0, rovnaký nepárny posun a v operačnom systéme macOS Finder aj v nástroji ExifTool sa súbor tvári úplne rovnako ako skúmané súbory 27554.jpg a 27555.jpg.

Dôkaz č. 2: Kvantizačná matica Meta/Facebook a nulové časové pečiatky v JPG

Každý fotoaparát, smartfón alebo grafický program používa pri ukladaní súboru JPEG vlastnú matematickú tabuľku kompresie (DQT). V súboroch 27554.jpg aj 27555.jpg sa však nenachádza tabuľka zo žiadneho fotoaparátu ani z editora Adobe Photoshop či Canva. Nachádza sa v nich špecifická matica Meta / Facebook CDN:

DQT Tabuľka #0 (Luma / Jas) v 27554.jpg & FB
53444354445556712877771511119121715181817151717192228231920262117172433242629293131311923343634303628303130
Audit časových pečiatok v 27554.jpg a 27555.jpg
  • EXIF DateTime (0x0132): CHÝBA (None)
  • EXIF DateTimeOriginal (0x9003): CHÝBA (None)
  • EXIF CreateDate (0x9004): CHÝBA (None)
  • IPTC DateCreated (2:55): CHÝBA (None)
  • XMP xmp:CreateDate: CHÝBA (None)
  • XMP photoshop:DateCreated: CHÝBA (None)
Celkový počet časových pečiatok v súboroch: 0

Dôkaz č. 3: Analýza chybovej úrovne kompresie (ELA) a identita tváre v oboch vizuáloch

Pomocou metódy Error Level Analysis (ELA) a krížovej korelácie pixelov sme zároveň preverili, či bola koláž 27554.jpg vytvorená ručnou fotomontážou v grafickom editore, alebo či ide o výstup toho istého generatívneho AI modelu.

ELA analýza súboru 27554.jpg
ELA mapa koláže (27554.jpg): Celoplošne homogénna chybová úroveň potvrdzuje, že celá scéna bola vygenerovaná a následne skomprimovaná ako jeden celok.
Porovnanie čŕt tváre medzi 27554.jpg a 27555.jpg
Biometrická a štrukturálna zhoda: Portrét v koláži (27554.jpg) a samostatný portrét (27555.jpg) vykazujú vysokú štrukturálnu príbuznosť (r = 0.7289) typickú pre referenčný vstup v tom istom AI vlákne.
Detail kapoty vozidla s generatívnym nápisom LADISLAV
Stopa AI syntézy #1 (Kapota): Charakteristická deformácia malých písmen pod nápisom LADISLAV a zliatie mriežky chladiča typické pre difúzny model gpt-image v2.0.
Detail zadnej časti dodávky s nápisom TRANSIT
Stopa AI syntézy #2 (Zadné dvere): Asymetria typografie „TRANSIT“ a nefyzikálna geometria zadného stierača a odrazov v skle.
Generácia / SúborCelková veľkosťZačiatok DQT (Hlavička)Obrazové jadro (DQT..EOI)Kryptografia / Pečiatka
1. Gen: ChatGPT PNG Originál2 169 845 BcaBX C2PA (23 617 B)Bezstratový PNG (B=1.0263)DigiCert TSA: 12. 9. 2026 00:02:50 SELČ
2. Gen: Facebook Koláž (.jpg)264 387 B154 B (FBMD)264 233 BMeta CDN • 0 výskytov mena
3. Gen: 27554.jpg (s menom)265 194 B (+807 B)961 B (Injektor, off. 0x61)264 233 B (100 % zhoda s FB)0 časových pečiatok (Nepodpísané)
2. Gen: Facebook Portrét (.jpg)259 519 B154 B (FBMD)259 365 BMeta CDN • 0 výskytov mena
3. Gen: 27555.jpg (s menom)260 326 B (+807 B)961 B (Injektor, off. 0x61)259 365 B (100 % zhoda s FB)0 časových pečiatok (Nepodpísané)
Otvorená veda & Replikácia výskumu

Neverte len našim slovám. Overte si dáta sami!

Pre celú komunitu IT špecialistov, kryptografov, súdnych znalcov a dátových analytikov sme pripravili anonymizovanú frontu čistých dátových tokov (tok_01 až tok_06) aj kompletný znalecký forenzný protokol.

Záverečné zhrnutie: Dáta a matematika neklamú

Forenzná analýza preukázala s matematickou istotou, že súbory 27554.jpg a 27555.jpg nie sú prvotnými zdrojovými súbormi, z ktorých by vychádzal príspevok na sociálnej sieti. Naopak, sú to súbory, ktoré už prešli špecifickou kompresiou serverov Facebooku (264 233 B a 259 365 B), z ktorých bola odstránená 154-bajtová hlavička FBMD a nahradená 961-bajtovou hlavičkou s menom Annamárie S. a nulovým počtom časových pečiatok.

Jediným autentickým prvotným originálom v celom skúmanom súbore dát je bezstratový súbor ChatGPT Image 14. 9. 2026, 15_21_34.png, ktorého pôvod v modeli OpenAI gpt-image v2.0 a čas vzniku (12. 9. 2026 00:02:50 SELČ) sú chránené nefalšovateľným kryptografickým podpisom autority DigiCert.