Teknoloji

Görünmez, ama kriptografik.

Bir filigranın değeri, gizli olmasından değil, içeriğe bağlı olmasından gelir. jettymark'ta her paragraf, her görsel ve her 2 saniyelik video parçası kendi Ed25519 imzasını taşır. Metinde imza beş görünmez Unicode karakteriyle kelime sonlarına dağıtılır; görüntüde parlaklığa eklenen görünmez bir desenle piksellere. İkisi de herkesin okuyabildiği açık bir formatla doğrulanır.

Metin · 1 · Taşıyıcı

Beş karakter, iki bit

Seçilen karakterlerin tamamı Unicode'un "varsayılan yok sayılabilir" sınıfında: fontta glif olmasa bile sıfır genişlikte çizilir. Hiçbiri doğal dillerde geçmez; Tayca ya da Farsçada anlam taşıyan U+200B ve U+200C ailesinden değildir ve "görünmez karakter temizleyici" filtrelerin hedefinde çok daha az bulunur.

Bir dizi, her zaman kelimenin sonuna, boşluktan hemen önce eklenir. Böylece satır kırma fırsatı eklenmez veya silinmez, kelime yazım denetiminde ikiye bölünmez.

KarakterAdRol
U+2060WORD JOINERÇerçeve başlangıcı (senkron)
U+2061FUNCTION APPLICATIONSembol değeri 0
U+2062INVISIBLE TIMESSembol değeri 1
U+2063INVISIBLE SEPARATORSembol değeri 2
U+2064INVISIBLE PLUSSembol değeri 3

Bir bayt = 4 sembol. 87 baytlık çerçeve = 348 görünmez karakter; UTF-8'de paragraf başına yaklaşık 1 KB.

Metin · 2 · Kanonikleştirme

İmza görünen metne değil, kanonik metne atılır

İmzalayan ve doğrulayan, metni aynı kurallarla sadeleştirir: görünmez karakterler atılır, NFC uygulanır, tırnak-tire-üç nokta tek forma indirilir, kelimeler tek boşlukla birleştirilir. Aktarımda değişen her şey bu sadeleştirmede yok olur; içeriği değiştiren her şey imzayı düşürür.

İmzayı etkilemez
  • Satır sonlarının değişmesi, paragrafların birleşmesi
  • Düz tırnak ↔ akıllı tırnak, tire ↔ uzun tire, üç nokta ↔ …
  • Kesilmez boşluk, ince boşluk, çift boşluk
  • ş / ğ / ü için NFC ↔ NFD (bileşik ↔ ayrık)
  • Soft hyphen, BOM, varyasyon seçicileri gibi görünmezler
  • HTML entity kodlaması (örn. ⁠)
İmzayı düşürür
  • Bir harfin, rakamın ya da kelimenin değişmesi
  • Kelime silinmesi veya kelime araya eklenmesi
  • Blok içinde cümle sırasının değişmesi
  • Büyük/küçük harf değişikliği (İ/ı dahil)
  • Noktalamanın anlam değiştirecek biçimde değişmesi
  • İşaretin başka bir metne taşınması
Metin · 3 · Çerçeve

Her blokta 87 bayt

Başlık, yayıncı anahtarının kimliğini, belge kimliğini, blok numarasını ve zamanı taşır; ardından 64 baytlık imza ve bir sağlama gelir. Başlığın kendi sağlaması vardır: bir kelime görünmez diziyle birlikte silinse bile blok "hangi belgenin kaçıncı bloğu" diye hâlâ atfedilebilir.

1 Bsürüm
1 Bbayraklar
4 Bkid
8 Bbelge kimliği
1 Bblok no
1 Bblok sayısı
4 Bzaman
4 Balıcı (opsiyonel)
1 Bbaşlık CRC-8
64 BEd25519 imzası
2 BCRC-16

İmzalanan mesaj

"TMK1" ‖ başlık ‖ SHA-256(kanonik blok metni). Başlık imzanın içinde olduğundan belge kimliği, blok numarası ve alıcı da değiştirilemez.

Yerleşim

Senkron + başlık bloğun ilk kelimesine; imza ve sağlama kalan kelimelere eşit dağıtılır. Bloğun ilk ve son kelimesi mutlaka sembol taşır.

Kapsam

Doğrulayıcı paragraf sınırlarına bakmaz: çerçevenin ilk sembolünü taşıyan kelimeden son sembolü taşıyan kelimeye kadar olan aralık "kapsanan metin"dir.

Metin · 4 · Doğrulama

Sembolleri sırayla oku, kanonik metni yeniden kur, imzayı kontrol et

1Kelimeleri ve görünmez karakterleri sırayla oku
2Senkron karakterinden sonraki sembolleri çerçeveye topla
3CRC'leri doğrula, kapsanan kelimelerin kanonik metnini kur
4kid ile açık anahtarı bul, Ed25519 imzasını kontrol et
5Kapsam dışı kelimeleri ve eksik blokları raporla
DurumAnlamıNe zaman
OrijinalTüm bloklar doğrulandıKapsam dışı kelime yok, eksik blok yok
Kısmen doğrulandıDoğrulanan bloklar orijinalKapsam dışı kelime, eksik blok ya da çözülemeyen blok var
Değiştirilmişİmza var, metin uyuşmuyorEn az bir bloğun kanonik metni imzayla eşleşmiyor
Bilinmeyen anahtarİmza kontrol edilemedikid güvenilenler listesinde yok
HasarlıSemboller var, blok yokAktarım görünmez karakterlerin bir kısmını bozmuş
Filigran yokDoğrulanamazHiç görünmez karakter yok; sahtelik kanıtı değildir
Metin ve medya · 5 · Anahtar dağıtımı

Açık anahtar alan adınızda durur

Doğrulama için yalnızca yayıncının açık anahtarı gerekir. Yayıncı anahtarlarını /.well-known/jettymark.json adresinde yayınlar; doğrulayıcı bir kez indirir, sonra tamamen çevrimdışı çalışır. Aynı anahtar metni, görseli ve videoyu imzalar.

Anahtar kimliği (kid) açık anahtarın SHA-256 özetinin ilk 4 baytıdır. Anahtar sızarsa listeye iptal tarihi eklenir; doğrulayıcılar o anahtarla imzalanmış içeriği "bilinmeyen anahtar" olarak raporlar.

// https://egehaber.example/.well-known/jettymark.json { "version": 1, "issuer": "Ege Haber Ajansı", "keys": [ { "kid": "26911174", "alg": "ed25519", "publicKey": "iEcrt2Nfwhw0I3SDrjwbAwEXCW-QZ8cMbxAJZsI4bWY", "created": "2026-11-01T06:00:00Z" } ] }
Metin · 6 · Tehdit modeli

Ne olur, ne olmaz

Dürüst bir mühür, sınırlarını da söyler. Aşağıdaki tablo metin filigranı için gerçek testlerden alınmıştır.

MüdahaleSonuçAçıklama
Bir rakam değiştirilir (12 → 21)Değiştirilmişİlgili blok "imzayla uyuşmuyor" olarak işaretlenir
Kelime, görünmez diziyle birlikte silinirKısmen doğrulandıBlok çözülemez ama başlık sağlaması sayesinde belgeye ve blok numarasına atfedilir
Sona cümle eklenirKısmen doğrulandıEklenen cümle "kapsam dışı" olarak listelenir
İşaret başka bir metne taşınırDeğiştirilmişİmza kanonik metnin özetine atıldığı için düşer
Yeniden satırlama, akıllı tırnak, NBSP, NFDOrijinalKanonikleştirme bunları yok sayar
Görünmez karakterlerin tümü silinirFiligran yokSahte değil, doğrulanamaz; kayıt defteri benzerlikle bulur
Yazdırma, OCR, ekran görüntüsü (metin)Filigran yokMetin mührü metnin kendisinde; görüntüye geçmez. Görsel ve video için 12. bölüme bakın
Görsel ve video

Piksellerde yaşayan mühür, altı adımda.

Fotoğrafta ve videoda kelime sonu yoktur; mühür, görüntünün parlaklığına eklenen çok zayıf bir desendir. Aşağıdaki bölümler bu desenin neyi taşıdığını, içeriğe nasıl bağlandığını ve nasıl okunduğunu anlatır. Format belgesi: FORMAT-MEDIA.md. Dayanıklılık rakamları tasarım hedefidir; ölçüm sürüyor.

Görsel ve video · 7 · Desen

128 piksellik karo, iki katman

Görüntü önce uzun kenarı 1024 piksele indirilen bir "çalışma çözünürlüğü"nde ele alınır. Bu çözünürlükte 128×128 piksellik tek bir karo üretilir ve görüntünün tamamına döşenir: her karo aynıdır. Karo, yalnızca parlaklığa (Y) eklenir; renk ve dosya biçimi değişmez.

Karonun frekans uzayı iki mantıksal katmana ayrılır: düşük frekanslı kimlik katmanı (C) 64 bitlik işaret kimliğini taşır ve kameradan, baskıdan, 480p videodan okunacak kadar sağlamdır; daha yüksek frekanslı imza katmanı (F) 120 baytlık imzalı çerçevenin tamamını taşır ve yalnızca dosya yolundan okunur. 96 "senkron" bini de geometriyi bulmaya ve yanlış pozitifleri elemeye yarar.

Bir algısal maske, deseni düz alanlarda (gökyüzü, ten) kısar, dokulu alanlarda büyütür. Güç 1–5 arasında seçilir; varsayılan 3'te tasarım hedefi yaklaşık 42 dB PSNR'dir. İmzalayan, çıktısını JPEG kalite 60 ve %50 küçültme ile kendisi dener; desen çözülemiyorsa gücü artırır ya da reddeder ("görüntü filigran taşıyamıyor"). Sessizce zayıf mühür basılmaz.

BileşenBant (karo başına devir)TaşıdığıDayanması hedeflenen
S · senkron4 ≤ r < 12 (96 bin)Sabit fazlarKimlik katmanının dayandığı her şey; çeviri ve yön bilgisi
C · kimlik4 ≤ r < 16 (278 bin)88 bit: sürüm, bayraklar, 64 bitlik işaret kimliği, CRC-16Kamera 20–50 cm, baskı, 480p video, ağır yeniden kodlama
F · imza16 ≤ r < 36 (1628 bin)120 baytlık imzalı çerçeveJPEG kalite ≥ 60, 0,5× / 2× boyut, %60 kırpma, ±5°, ekran görüntüsü, x264 CRF ≤ 23

Tüm binler, fazlar ve permütasyonlar herkese açık sabitlerden türetilir (xoshiro128**, amaç dizgileri). Her iki katman K=7, hız 1/2 evrişimsel kodla korunur; çözümde yumuşak kararlı Viterbi kullanılır. Son sütun tasarım hedefidir: Hedef · ölçüm sürüyor.

Görsel ve video · 8 · Çerçeve

Her görselde, her 2 saniyelik parçada 120 bayt

Başlık; yayıncı anahtarının kimliğini, belge kimliğini, zamanı, alıcıyı, video parçasının numarasını, imzalı alanın boyutunu ve 25 baytlık içerik özetini taşır. Ardından 64 baytlık Ed25519 imzası ve sağlama gelir. İmzalanan mesaj "JMM1" ‖ başlık; içerik özeti başlığın içinde olduğundan imzaya ayrıca bir şey eklenmez.

1 Bsürüm (0x02 görsel · 0x03 video)
1 Bbayraklar
4 Bkid
8 Bbelge kimliği
4 Bzaman
4 Balıcı (yoksa sıfır)
2 Bparça no
2 Bparça sayısı
2 Bw8 · h8 (imzalı alan)
25 BJMQ-25 içerik özeti
1 Bbaşlık CRC-8
64 BEd25519 imzası
2 BCRC-16

İşaret kimliği

SHA-256("JMM1-ID" ‖ kimlik öneki)[0..8]: sürüm, bayraklar, kid, belge kimliği, zaman ve alıcıdan türetilen 64 bit. Yayınlanan her kopyanın kendi kimliği vardır; bir videonun her parçası aynı kimliği taşır.

Video parçaları

Sunum zamanına göre her 2 saniye bir parça; parçanın her karesi aynı çerçeveyi taşır. 4 saniyeden uzun her kesit en az bir tam parça içerir; çözülen parça numarası kesitin yayındaki yerini söyler.

Metinle ortak olanlar

Anahtarlar, kid, belge kimliği, alıcı parmak izi, güven listesi ve altı sonuç kelimesi metinle aynıdır. Metin çerçevesi (TMK1, 87 bayt) değişmez; medya çerçevesi ayrı bir formattır.

Görsel ve video · 9 · İçerik bağlaması

İmza görüntünün özetine atılır

Metinde imza kanonik metne atılır; görüntüde kanonik metnin karşılığı 25 baytlık bir içerik özetidir (JMQ-25): imzalı alan 8×6 = 48 bölgeye bölünür ve her bölgenin parlaklık düzeyi 16 basamaktan birine yuvarlanır. Özet, mührün yaşadığı ince dalga boylarından çok daha kaba yapıya bakar; bu yüzden yeniden sıkıştırma, boyutlandırma ve ılımlı ton değişiklikleri özeti değiştirmez, bir bölgenin içeriğini değiştirmek değiştirir.

Doğrulayıcı aynı 48 düzeyi alınan görüntüde yeniden ölçer, imzadaki düzeylere sağlam bir ton eğrisi oturtur (parlaklık, kontrast ve gama değişiklikleri böylece emilir) ve eğriden 10 gri düzeyden fazla sapan bölgeleri "imzayla uyuşmuyor" olarak işaretleyip görüntünün üstünde gösterir. Doygun (tamamen beyaz ya da siyah) bölgeler karşılaştırmadan dışlanır.

Dürüst sınır: denetim bölge ölçeğindedir (bir bölge alanın yaklaşık %2'si). Bir bölgenin parlaklık düzeyini koruyan değişiklikler (aynı parlaklıkta renk değişikliği, küçük bir alanın bulanıklaştırılması ya da rötuşlanması) çevrimdışı yakalanmayabilir; 48 düzeyi herkes okuyabildiği için bilerek bu toleransın içinde tutulan bir düzenleme de yakalanmaz. Kayıt defteri her 128 piksellik karonun özetini saklar ve çevrimiçi karşılaştırır.

Bölge düzeyleri · 48 × 4 bit

İmzalı alan (son 8 piksel hariç) 8×6 bölgeye bölünür; her bölgede parlaklıkların orta yarısının ortalaması alınır ve 4 bite yuvarlanır. Basamak boyu görüntünün parlaklık aralığına göre seçilir ve 1 baytta saklanır.

Ton eğrisi ve sapma

Doğrulayıcı imzadaki düzeylerden alınan görüntünün düzeylerine kübik bir ton eğrisi oturtur; aykırı bölgeler eğriyi etkilemez. Kırpılmış görselde yalnızca tam görünen bölgeler karşılaştırılır.

KarşılaştırmaDurumSonuca etkisi
Karşılaştırılan her bölge ton eğrisine 10 gri düzey içinde uyuyoruyuşuyorOrijinal (kapsam tamsa) / Kısmen (kırpılmışsa)
En az bir bölge eğriden 10 gri düzeyden fazla sapıyoruyuşmuyorDeğiştirilmiş; bölgeler işaretlenir
8'den az bölge karşılaştırılabildi (ağır kırpma, doygun görüntü)belirsizKısmen doğrulandı · "belirsiz"
Görsel ve video · 10 · Doğrulama

Geometriyi bul, karoyu katla, iki katmanı çöz, imzayı ve özeti kontrol et

1Görüntüyü çalışma çözünürlüğüne indir, parlaklığı al, görüntünün kendisini beyazlatma filtresiyle bastır
2Karo kafesini otokorelasyonla bul: ölçek, dönüş, kayma; değişmemiş dosyada kısa yol
3Senkron kapısı: 96 rastgele fazla korelasyon; tepe/gürültü oranı 7'nin altındaysa "filigran yok"
4Tüm karoları tek karoya katla, Viterbi ile kimlik ve imza katmanını çöz, CRC'leri doğrula
5kid ile açık anahtarı bul, Ed25519 imzasını kontrol et; içerik özetini yeniden hesapla ve karşılaştır
DurumAnlamıNe zaman
Orijinalİmza geçerli, içerik uyuşuyorGörüntünün tamamı görünüyor, 48 bölge imzayla uyuşuyor
Kısmen doğrulandıGörünen kısım orijinalKırpılmış (kapsam < 1), kesilmiş video, ya da karşılaştırma belirsiz · kırpılmış / belirsiz
Değiştirilmişİmza var, görüntü uyuşmuyorEn az bir bölgenin özeti imzadakiyle eşleşmiyor; bölgeler işaretlenir
Bilinmeyen anahtarİmza kontrol edilemedikid güvenilenler listesinde yok ya da iptal edilmiş
HasarlıSenkron var, çerçeve yokHiçbir katman çözülemedi; ya da yalnızca kimlik: kimlik katmanı okundu, imza katmanı çözülemedi — kayıt defterine sorulabilir; ya da imza geçersiz (bozuk ya da uydurma başlık; yayıncı adı asla iddia olarak gösterilmez)
Filigran yokDoğrulanamazKafes yok ya da senkron kapısı geçilemedi; sahtelik kanıtı değildir

Metinden bilinçli bir fark: metinde geçersiz imza "değiştirilmiş" demektir (imza metni kapsar); görüntüde imza yalnızca başlığı kapsar, bu yüzden geçersiz imza "hasarlı"dır ve içerik değişikliğini yakalayan şey içerik bağlamasıdır. Yanlış pozitif için zincirli kapılar: 7σ senkron eşiği, CRC-16, CRC-8, sürüm baytı ve imza. Hedef: 1000 işaretsiz görüntüde 0 "hasarlı" ya da üstü (hedef · ölçüm sürüyor).

Görsel ve video · 11 · Kamera yolu

Kamera tanımlar, dosya doğrular

Telefon kamerası ekrana ya da baskıya 20–50 cm'den tutulduğunda, bulanıklık ve perspektif yüzünden kare başına yalnızca birkaç güvenilir bit okunur; 512 bitlik imza ve başlığı bu yoldan taşımak dakikalar alırdı. 64 bitlik kimlik 1–3 saniyede okunur. Bu yüzden kamera yolu kayıt defterine sorar: "bu işaret kime kayıtlı?"

Sonuç bir doğrulama değildir ve öyle adlandırılmaz: uygulama TANIMLANDI der, "doğrulandı" demez. Kimlik katmanı imzasız ve herkese açıktır; bilinen bir kimlik başka bir görsele kopyalanabilir. Kayıt defteri, telefonun gördüğü içerik özetini kayıtlı olanla karşılaştırır ve uyuşmazlığı söyler; yayıncı izin verdiyse kayıtlı küçük resmi de gösterir. İmzanın kendisi yalnızca dosya yüklenerek doğrulanır.

Telefondan yalnızca işaret kimlikleri ve en fazla 128 bitlik özet gider; görüntü, kare ya da konum gönderilmez. Kayıt defterine ulaşılamazsa uygulama "kayıt defterine ulaşılamadı — kimlik: …" der; asla bir iddiaya dönüşmez.

Mobil uygulama · YakındaTarayıcı prototipi: /tara (deneysel)

Ne gönderilir

İşaret kimlikleri (en fazla 4), isteğe bağlı 64+64 bitlik özet ve görünen bölge maskesi, güven ölçütleri. Görüntü, kare ve konum gönderilmez; cihaz kimliği saklanmaz.

Neden çevrimiçi

Kamera 64 bitlik kimliği taşır, imzayı değil. 64 biti bir yayıncıya ve içeriğe yalnızca kayıt defteri eşler. Telefonda imza katmanı da fırsat düştükçe denenir; çözülürse çevrimdışı doğrulama ayrıca bildirilir, vaat edilmez.

Sınırlar

20–50 cm, ±15° eğim; moiré ve çok düz görüntüler okumayı zorlaştırır. Baskıda yalnızca kimlik katmanı okunur. Bu değerler tasarım hedefidir.

Kayıt defteri karşılaştırmasıUygulamanın söylediği
uyuşuyor"TANIMLANDI — Bu işaret şu içeriğe kayıtlı: … · yayıncı: Ege Haber Ajansı. Gördüğünüz görüntü kayıtla uyuşuyor (kamera karşılaştırması, yaklaşık)."
uyuşmuyor"DİKKAT: Bu işaret şu içeriğe kayıtlı: … · yayıncı: Ege Haber Ajansı. Ama gördüğünüz görüntü o kayıtla uyuşmuyor — işaret başka bir görsele kopyalanmış olabilir."
bilinmiyor"TANIMLANDI — Bu işaret şu içeriğe kayıtlı: … · yayıncı: Ege Haber Ajansı. İçerik kameradan karşılaştırılamadı — doğrulamak için dosyayı yükleyin."
kayıt yok"Bu işaret kayıt defterinde yok (kimlik …)."
Görsel ve video · 12 · Tehdit tablosu

Neye dayanması hedeflenir, neye dayanmaz

Aşağıdaki satırlar formatın tasarım hedefleridir. Her satır, test külliyatında ölçüldükçe 'ölçüldü' olarak işaretlenecek; o güne kadar hiçbiri bir vaat değildir.

Hedef · ölçüm sürüyor
Müdahale (görsel)Hedeflenen sonuçAçıklamaDurum
JPEG yeniden sıkıştırma, kalite ≥ 60Orijinal40 gerçek fotoğrafta ölçüldü; zayıf kalan görsellerde imzalarken güç otomatik artırılırÖlçüldü
%50 küçültmeOrijinal1200 px ve üstü orijinallerde imza katmanı çözülür; 768 px ve altında yalnızca kimlik katmanı okunurÖlçüldü
2× büyütmeOrijinalDoğrulayıcı dosyayı 1024 px'e indirir; döşeme periyodu yeniden bulunurÖlçüldü
%60 kırpmaKısmen doğrulandı"Kırpılmış": görünen bölgeler doğrulanır, kapsam bildirilir; kırpmaların yaklaşık %80'inde imza çözülür, kalanında yalnızca kimlik okunur ya da filigran bulunamaz — yanlışlıkla "değiştirilmiş" denmezÖlçüldü
±5° döndürmeOrijinalDöşeme kafesi otokorelasyonla yeniden bulunur; görsellerin yaklaşık %90'ında imza çözülür, kalanında yalnızca kimlik okunurÖlçüldü
Sosyal medya yeniden sıkıştırması (1080 px, JPEG 75, meta veri silinmiş)OrijinalBenzetimle ölçüldü (yeniden boyutlandırma + JPEG 75)Ölçüldü
Ekran görüntüsüOrijinalBenzetimle ölçüldü (%83 ölçek + JPEG 85)Ölçüldü
Alanın %6'sı ya da daha büyük bir bölgenin içeriği değiştirilir (başka fotoğraftan parça, nesne ekleme, boyama)Değiştirilmiş40 gerçek fotoğrafta ölçüldü: 4×4 hücrenin değiştirilmesi %97,6, %6'lık parça %96,9, %10 nesne ekleme %99,8, %6 kırmızı yama %93 oranında "değiştirilmiş" (imza katmanının çözüldüğü örneklerde; çözülmeyenler "değiştirilmiş" yerine "hasarlı" ya da "filigran yok" okunur, hiçbiri "özgün" değil). Ortalamadır: düz, az dokulu görsellerde %6'lık değişikliklerin beşte biri ile yarısı arasında kaçabilir. Zararsız işlemlerde 2224 örnekte 0 yanlış alarm; siyah-beyaza çevirme bir görselde yanlışlıkla "değiştirilmiş" verdi. Küçük rötuş, bulanıklaştırma (%6'da %7) ve aynı parlaklıkta renk değişikliği çoğu zaman yakalanmazÖlçüldü
İşaret başka bir görsele taşınırDeğiştirilmişİmza, içerik özetini kapsar: taşınan işaret yeni görselle uyuşmazÖlçüldü
Kasıtlı silme (desen çıkarma, ağır bulanıklaştırma, çok düşük kalite)Filigran yokMühür silinebilir; sonuç "filigran yok"tur, asla "sahte" değilHedef · ölçüm sürüyor
Müdahale (video)Hedeflenen sonuçAçıklamaDurum
x264 CRF ≤ 23, 720p ve üstüOrijinalİmza katmanı her 2 saniyelik parçada çözülürÖlçüldü
x264 CRF ≤ 28 ya da 480pOrijinal720p CRF 28 ve 480p CRF 23'te tüm parçalar doğrulandı; 480p + CRF 28'de kısmen doğrulandıÖlçüldü
Kesme (≥ 4 sn'lik herhangi bir klip)Kısmen doğrulandıEn az bir tam parça çözülür; parçanın yayındaki yeri bildirilirÖlçüldü
Kare hızı dönüşümü, kare düşürmeOrijinal15, 24 ve 30 fps dönüşümlerinde ölçüldüÖlçüldü

v1'de bilerek vazgeçilenler: kafesin verdiği 8 yön ve yaklaşık ±15° dışında rastgele döndürme, alanın %50'sinin altında kırpma, ~15° üstü perspektif, arşiv kalitesinde baskı-tarama, çevrimdışı bölge altı düzenleme tespiti, kamera yolunda çevrimdışı sahiplik cevabı ve kasıtlı silmeye karşı her türlü direnç. Silinmiş işaret ile hiç işaretlenmemiş dosya aynı görünür.

Kendi doğrulayıcınızı yazmak ister misiniz?

İki format belgesi de bağımsız bir uygulama için yeterlidir; referans kütüphane ve test vektörleri açık kaynak.