Human-Exclusive Information Channels: Cryptographic & Perceptual Obfuscation Against Large Language Models
Human-Exclusive Information Channels
Cryptographic & Perceptual Methods to Hide Public Text from LLMs
A Technical Treatise & Interactive Demonstration on Asymmetric Human-AI Information Delivery
1. The Core Dilemma: Public Accessibility vs. Unconsented AI Ingestion
The modern open web is grounded on a decades-old axiom: if information is public, it must be universally machine-readable. For search engines indexing documents via HTTP GET, this premise fostered open access. However, the rapid proliferation of automated scraping infrastructure for Large Language Model (LLM) pre-training corpora, Retrieval-Augmented Generation (RAG) scrapers, and autonomous web-agent workers has radically destabilized this dynamic.
Authors, researchers, domain experts, and privacy-conscious publishers face an asymmetric dilemma:
The Publisher’s Paradox: How can an author distribute text across the public web so that any human reader can read it instantaneously with zero login walls or identity checks, while ensuring that automated scrapers, tokenizer pipelines, and multimodal Vision-Language Models (VLMs) ingest only undecipherable entropy or poison?
Addressing this requires constructing a Human-Exclusive Information Channel (HEIC). In this treatise, we systematically dissect the threat model hierarchy across four distinct tiers of automated extraction—and develop live, verifiable defenses for each.
2. The Threat Hierarchy of Automated Extraction
To design principled defenses, we model the adversarial extractor across four escalating capabilities:
| Tier | Adversary Type | Inspection Vector | Extraction Mechanism | Defensive Primitive |
|---|---|---|---|---|
| Tier 1 | Raw HTTP Scrapers (curl, GPTBot, CCBot) | Static HTTP response payload | Ingests raw .html, .json, or raw byte streams without JS execution | Client-Side Proof-of-Work + WebCrypto |
| Tier 2 | Headless Browser & DOM Scrapers (Playwright, Puppeteer) | Rendered DOM tree / Clipboard events | Queries DOM elements (innerText, textContent) or fires clipboard copy events | Bijective Font Glyph Substitution (cmap) |
| Tier 3 | Tokenizer & Latent Ingestion (BPE, WordPiece) | Unicode codepoints & semantic embeddings | Chunks UTF-8 byte sequences into integer token IDs $\mathbf{z} \in \mathbb{R}^d$ | Adversarial Subword Splitting & Homoglyphs |
| Tier 4 | Multimodal Vision-Language Models & OCR (GPT-4o, Gemini, Screen Scrapers) | Rendered optical viewport | Takes static raster screenshots ($H \times W \times 3$) and runs ViT patch recognition | Sub-Frame Temporal Multiplexing & Kinetic Parallax |
Below, we analyze and simulate each defensive layer interactively.
3. Tier 1 Defenses: Client-Side Proof-of-Work & Asymmetric WebCrypto
3.1 The Static Web Vulnerability & The Computational Tollbooth
To understand how Tier 1 operates, consider the architectural constraint of modern static hosting (such as GitHub Pages, Cloudflare Pages, Netlify, or AWS S3):
The Static Server Dilemma: In a static deployment, there is no server-side backend (e.g., Python, Node.js, PHP) executing authentication logic per request. The server merely acts as a passive file host. When a visitor requests
article.html, the web server streams the raw files across the wire without checking identities.
Under this architecture, automated scrapers (e.g., curl, Python’s requests, or commercial LLM crawlers like GPTBot and CCBot) enjoy a massive structural advantage:
- They issue an HTTP
GETrequest. - They receive the plain HTML in $\approx 2\text{–}5\text{ ms}$.
- They extract the textual content using simple regex or string parsing with virtually zero CPU overhead ($< 1\text{ ms}$).
Why Naive Client-Side Encryption Fails
If an author attempts to protect their text by encrypting it with a symmetric cipher (such as AES-256) and shipping the decryption key inside their client-side JavaScript bundle (app.js), the protection is trivially bypassed: any scraper developer can simply inspect the script, extract the static key, and decrypt the payload in milliseconds.
The Solution: The “Proof-of-Work” Computational Tollbooth
Instead of providing the decryption key directly, the static webpage presents the client with a mathematical challenge (a Proof-of-Work puzzle, derived from Adam Back’s Hashcash [1]):
+-------------------------------------------------------------------------------+
| STATIC SERVER (S3 / GitHub Pages) |
| Sends: [ Encrypted Payload C ] + [ Random Salt S ] + [ Difficulty Target d ]|
+-------------------------------------------------------------------------------+
│
▼
+-------------------------------------------------------------------------------+
| CLIENT BROWSER (V8 / WebAssembly) |
| |
| 1. COMPUTATIONAL SEARCH (Mining): |
| Try nonces: η = 0, 1, 2, 3, ... |
| Compute: H = SHA-256(Salt ∥ η) |
| Target: Does H start with d leading zero bits? |
| |
| 2. CRYPTOGRAPHIC KEY DERIVATION: |
| Once η is found ──> K = HKDF-SHA256(Seed ∥ η, Salt, "heic-channel") |
| |
| 3. IN-MEMORY DECRYPTION: |
| Plaintext = AES-256-GCM-Decrypt(K, C) ──> Render to Document DOM |
+-------------------------------------------------------------------------------+
The server does not give the browser the key. Instead, the browser must expend a small, predictable amount of CPU work to “dig” for the key locally.
3.2 Step-by-Step Execution Lifecycle
Here is what happens under the hood when a reader navigates to the page:
-
Step 1: Transmission of the Locked Box
The static HTML contains an encrypted ciphertext buffer $C$ produced via standard authenticated symmetric encryption: \(C = \text{AES-256-GCM}_{K}(\text{Plaintext})\) Along with $C$, the HTML supplies a public cryptographic salt $S$ and a target difficulty parameter $d$ (e.g., $d = 14$ or $16$ bits). -
Step 2: Client-Side Nonce Search (Proof-of-Work)
As soon as the page loads, an asynchronous JavaScript Web Worker or WebAssembly thread begins searching for an integer counter (the nonce $\eta \in \mathbb{N}$) that satisfies a partial pre-image hash constraint: \(\text{Find } \eta \in \mathbb{N} \quad \text{such that} \quad \text{SHA-256}(S \parallel \eta) \le \frac{2^{256}}{2^d}\) Because SHA-256 is a cryptographically secure, pre-image resistant one-way hash function, there is no shortcut or analytical inversion formula. The client must test values sequentially ($\eta = 0, 1, 2, \dots$) until it finds a hash beginning with $d$ zero bits. -
Step 3: Deterministic Key Derivation (HKDF)
Once the client discovers the winning nonce $\eta$, it feeds $\eta$ and the salt $S$ into an HMAC-based Key Derivation Function (HKDF-SHA256): \(K = \text{HKDF-Expand}(\text{HKDF-Extract}(S, \text{Seed} \parallel \eta), \text{"heic-channel"}, 32)\) Because only the correct nonce satisfies the puzzle, this mathematically reconstructs the exact 256-bit AES key $K$. -
Step 4: Ephemeral Decryption & DOM Injection
Using the W3C native Web Cryptography API (window.crypto.subtle.decrypt[7]), the browser decrypts $C$ in $< 1\text{ ms}$ and writes the recovered text into the webpage DOM. The key $K$ is kept strictly in volatile memory and never persisted to cookies, local storage, or disk.
3.3 The Core Mechanism: Economic & Computational Asymmetry
Why does this simple mechanism present an existential barrier to automated LLM scrapers while remaining completely painless for a real human?
The defensive power relies entirely on the asymmetry of scale:
| Metric | Single Human Reader | Automated LLM Crawler Fleet |
|---|---|---|
| Target Scale | Visiting 1 article to read | Scraping $10,000,000+$ pages across the web |
| Execution Environment | Standard web browser (Chrome, Safari, Firefox) | Lightweight headless HTTP workers (urllib, aiohttp, Go) |
| Required Hash Operations | $\approx 2^{14} = 16,384\text{ iterations}$ | $10^7 \times 2^{14} \approx \mathbf{163.8\text{ Billion iterations}}$ |
| Client Execution Latency | $30\text{–}50\text{ ms}$ (in-browser background worker) | Thousands of CPU-hours of sustained crunching |
| Human User Experience | Completely imperceptible (faster than human ocular saccade) | Economic collapse of the web-scraping business model |
The Mathematical Asymmetry Explained
- For a Human Reader: The human brain’s visual processing threshold is approximately $100\text{–}200\text{ ms}$. Running $16,000$ SHA-256 iterations on a modern laptop or smartphone takes roughly $35\text{ ms}$ in a background Web Worker. By the time the reader’s eye finishes tracking to the first headline, the payload has already been unlocked and rendered. The user experiences zero perceptible friction.
- For an LLM Crawler (e.g., Common Crawl, GPTBot): Scrapers rely on scraping thousands of pages per second over low-cost cloud instances with minimal CPU overhead. When confronted with a PoW challenge:
- They can no longer use simple HTTP clients: A standard
curlorrequests.get()script receives only undecipherable AES ciphertext hex chunks. - They must spin up full JavaScript engines: To solve the challenge, the scraper must run a heavyweight browser instance (such as Headless Chromium / Puppeteer), which increases memory consumption from 5 MB to 200 MB per worker thread.
- The computational bill explodes: Computing 160 billion SHA-256 operations turns what used to be a free $10/month crawling job into thousands of dollars in cloud electricity and weeks of bottlenecked processing.
- They can no longer use simple HTTP clients: A standard
Interactive Laboratory 1: Client-Side WebCrypto + PoW Engine
Use the simulator below to test client-side cryptographic key derivation. Adjust the difficulty target and execute the browser miner:
Lab 1: Client-Side Proof-of-Work & AES-256-GCM Engine
Tier 1 Defense4. Tier 2 Defenses: Bijective Glyph Substitution Ciphers (cmap Permutations)
4.1 Exploiting the Split Between Unicode Semantics and Font Glyphs
Even if a headless browser (e.g., Puppeteer, Playwright) executes JavaScript and evaluates the WebCrypto decryption, it typically extracts text by invoking:
const capturedText = element.innerText; // or element.textContent
This reveals the second architectural vulnerability of digital typography: the decoupling of Unicode semantic codepoints from vector rendering glyphs.
HTML Codepoints (DOM) OpenType / WOFF2 Font Human Retina
[ U+0071 ] ("q") =======> [ Glyph ID 84: Outline of 'T' ] ======> Sees: "T"
[ U+0038 ] ("8") =======> [ Glyph ID 41: Outline of 'h' ] ======> Sees: "h"
[ U+0023 ] ("#") =======> [ Glyph ID 29: Outline of 'e' ] ======> Sees: "e"
In standard typography, the OpenType cmap (Character to Glyph Mapping) table provides an identity or standard mapping:
| In a Bijective Glyph Substitution Channel (building upon adversarial typography and glyph perturbation principles [6]), the publisher dynamically generates a session-keyed permutation $\pi \in S_{ | \Sigma | }$ across the printable character alphabet $\Sigma$. The underlying DOM tree contains exclusively permuted codepoints: |
Simultaneously, the webpage loads an ephemeral, in-memory .woff2 font file whose internal cmap table is deliberately permuted with the inverse mapping $\pi^{-1}$:
4.2 The Clipboard & DOM Trap
Because modern operating systems copy the raw Unicode codepoints from the DOM rather than rasterizing visual pixels into text:
- The human reader looks at the screen and perceives normal, beautiful typography.
- An LLM scraper reading the DOM receives a cryptographically scrambled sequence.
- If an adversary attempts to highlight, copy, and paste the text into ChatGPT, Claude, or a RAG vector database, the clipboard receives only the cipher stream $c_1 c_2 \dots c_n$.
Interactive Laboratory 2: Live Copy-Paste Trap & Glyph Inspector
Try selecting the highlighted text below with your mouse, copy it (Ctrl+C / Cmd+C), and paste it (Ctrl+V / Cmd+V) into the interactive verification box on the right (or directly into your terminal or an LLM):
Lab 2: Bijective Glyph / DOM Substitution & Clipboard Trap
Tier 2 Defense5. Tier 3 Defenses: Adversarial BPE Token-Splitting & Latent Collapse
5.1 Byte-Pair Encoding (BPE) Foundations
Large Language Models do not process raw text strings directly; they decompose input strings into sequences of discrete subword tokens via greedy merge tables (such as OpenAI’s tiktoken or HuggingFace’s tokenizers).
Let $\mathcal{V}$ be the tokenizer vocabulary and $\mathcal{M}$ be the ranked merge rules. Given a clean word $W = \text{“Reinforcement”}$, a typical BPE tokenizer assigns a single unified token:
\[W \xrightarrow{\text{Tokenize}} [42191]\]The embedding layer maps this token directly to an informative point in representation space:
\[\mathbf{e} = \mathbf{E}[42191] \in \mathbb{R}^d\]5.2 Adversarial Unicode Perturbation
As established by Boucher et al. in Bad Characters [2], modern subword tokenizers (BPE, WordPiece) are acutely fragile to imperceptible code-point injections. By injecting zero-width non-printing codepoints—specifically:
-
U+200B(Zero-Width Space) -
U+200C(Zero-Width Non-Joiner) -
U+2060(Word Joiner)
or substituting identical visual glyphs with their Cyrillic or Greek homoglyphs (e.g., Latin 'a' $\rightarrow$ Cyrillic 'а' U+0430, Latin 'o' $\rightarrow$ Cyrillic 'о' U+043E) [4], [5], the human visual perception is invariant:
However, the BPE tokenizer cannot merge sequences containing interleaved control characters or non-Latin byte prefixes. The tokenization degenerates into single-character and unknown control tokens:
\[W_{\text{adv}} \xrightarrow{\text{Tokenize}} [49, 99401, 11892, 99401, 239, 981, \dots]\]5.3 Mathematical Impact on Transformer Self-Attention
This injection induces two distinct catastrophic failure modes in LLM inference and RAG vector search:
- Quadratic Sequence Inflation: The input token count explodes by a factor of $3\times\text{ to }6\times$, diluting the attention budget $\text{Softmax}\left(\frac{\mathbf{Q}\mathbf{K}^T}{\sqrt{d_k}}\right)$ across uninformative separator tokens.
- Cosine Distance Degradation: In vector embedding spaces (e.g.,
text-embedding-3-large,BGE-M3), the similarity between the clean document vector $\mathbf{v}$ and the perturbed vector $\mathbf{v}_{\text{adv}}$ collapses:
This ensures that semantic search queries in RAG systems fail to retrieve the protected passage entirely.
Interactive Laboratory 3: Adversarial BPE Tokenizer Sandbox
Type any sentence into the prompt box and adjust the perturbation slider to observe in real-time how the token stream shatters into disconnected subword IDs while human legibility remains intact:
Lab 3: Adversarial BPE Token-Splitting & Vector Space Degradation
Tier 3 Defense6. Tier 4 Defenses: Breaking the Screenshot Barrier (Anti-Multimodal Vision & OCR)
6.1 The Multimodal Challenge: Optical Character Recognition & VLMs
The most sophisticated threat to human-exclusive channels emerges from multimodal Vision-Language Models (e.g., GPT-4o, Gemini 1.5 Pro, Claude 3.5 Sonnet) paired with autonomous browser automation. If an agent executes:
await page.screenshot({ path: 'viewport.png' });
all underlying DOM scrambles, font-table permutations, and tokenizer splitters are bypassed. The VLM simply applies Optical Character Recognition (OCR) or Vision Transformer (ViT) patch attention directly across the 2D raster image:
\[I_{\text{screenshot}} \in \mathbb{R}^{H \times W \times 3}\]Can we prevent a static screenshot from conveying readable text to an AI, while keeping it completely readable to a human viewer?
The answer lies in human psychophysics and temporal visual integration.
6.2 Biological Critical Flicker Fusion (CFF) vs. Instantaneous Sampling
The human visual system does not perceive reality as a sequence of independent, isolated snapshots. Photoreceptor cells (rods and cones) and post-retinal ganglion cells exhibit a biological latency known as the persistence of vision, characterized by the Critical Flicker Fusion (CFF) threshold ($\approx 50\text{–}75\text{ Hz}$):
\[\text{Human Perceptual Integration: } I_{\text{human}}(x, y) = \int_{t - \tau}^{t} \mathcal{F}(x, y, t') \, dt' \quad (\tau \approx 60\text{ ms})\]In contrast, a headless screenshot or camera capture samples the display buffer at a single discrete temporal instant:
\[\text{Machine Snapshot: } I_{\text{AI}}(x, y) = \mathcal{F}(x, y, t_0)\]We can exploit this mathematical gap through three distinct perceptual techniques:
Method A: Sub-Frame Time-Division Multiplexing
We decompose every glyph outline into $K = 3$ to $5$ disjoint spatial sub-dot matrices. At $60\text{ Hz}$, the webpage alternates between these sub-matrices while simultaneously injecting uniformly distributed random noise dots in the background:
- In any single frame $t_0$ (Screenshot): The density of dots inside the glyph matches the density of the random noise background. The mutual information $I(\text{Glyph}; \mathcal{F}(\cdot, t_0)) \approx 0$. OCR models and Vision Transformers see only uniform noise.
- Over $60\text{ ms}$ (Human Eye): The human visual cortex integrates the alternating frames over time, perceiving crisp, continuous letterforms floating seamlessly above a faint gray backdrop.
Method B: Kinetic Counter-Phase Random-Dot Kinematograms (RDK)
Pioneered in visual neuroscience by Béla Julesz [3], an RDK renders foreground text and background using identical random dot distributions.
- Background dots drift continuously to the right at speed $+v$.
- Foreground text dots drift to the left at speed $-v$.
- In any frozen screenshot, the spatial statistics of foreground and background are identically distributed ($D_{\text{KL}}(P_{\text{text}} \parallel P_{\text{bg}}) = 0$), rendering it mathematically impossible for any static image model to segment the text.
- In motion, biological motion detectors in visual area V5/MT immediately separate the text from the background based on velocity contrast.
Interactive Laboratory 4: Live Anti-Screenshot Vault
Observe the live canvas below running at $60\text{ Hz}$. Notice how your eyes easily read the moving message. Then click “Simulate Screenshot (Freeze Single Frame)” to see what an AI vision model or screenshot crawler captures:
Lab 4: Anti-Screenshot Temporal Multiplexing & Kinetic RDK Vault
Tier 4 Defense7. Comparative Defense Matrix & Architectural Synthesis
When deploying a Human-Exclusive Information Channel in production, defenses should be stacked in depth according to the threat profile:
| Defensive Layer | Implementation Mechanism | Protects Against | Human Friction | Failure Boundary |
|---|---|---|---|---|
| Tier 1: Client PoW | SHA-256 Hashcash + AES-256-GCM | Raw HTTP Crawlers, Curl, GPTBot | 0 ms perceived (runs in WebWorker) | Headless browser running full V8 engine |
| Tier 2: Glyph Permutation | Custom Dynamic WOFF2 cmap + Copy Trap | Headless DOM Scrapers, Copy-Paste to ChatGPT | Zero (standard vector typography) | Full viewport raster screenshot + OCR |
| Tier 3: BPE Splitting | Zero-width codepoints + Cyrillic homoglyphs | Embedding Search, RAG Ingestion, Model Weights | Zero (invisible rendering width) | Rule-based Unicode normalization preprocessors |
| Tier 4: Temporal Multiplexing | 60Hz canvas sub-frame temporal integration & RDK | Static Screenshots, Vision-LLMs, OCR Scrapers | Low (requires continuous visual stream) | Multi-frame 60 FPS video stream capture |
8. Open Questions & Future Horizons
Constructing information channels that are accessible to biological eyes yet opaque to artificial intelligence defines one of the most intellectually compelling frontiers in modern computer science. As multimodal models transition from processing static images to analyzing high-frame-rate continuous video streams with spatio-temporal attention, the boundary between biological perception and machine cognition will narrow further.
Key open challenges include:
- Accessibility Standards: How can human-exclusive channels maintain strict compliance with WCAG screen-reader accessibility for visually impaired humans without inadvertently presenting clean plaintext codepoints to automated AI crawlers?
- Ephemeral Neural Key Exchange: Could future client-side channels utilize eye-tracking micro-saccades or human cognitive response times as a biometric Proof-of-Humanity key derivation function?
- Formal Verification: Establishing formal bounds on the minimum mutual information leakage $I(\text{Model}; \text{Payload})$ achievable under arbitrary automated preprocessing.
9. Academic References & Grounding Literature
The four defensive tiers synthesized in this treatise build upon seminal results across distributed systems, natural language processing security, typography, and visual psychophysics:
- [1] Proof-of-Work & Asymmetric Throttling:
Back, A. (2002). Hashcash - A Denial of Service Counter-Measure. Technical Report.
(Introduced computational partial pre-image proof-of-work to impose economic friction on bulk automated senders). - [2] Subword & Tokenizer Adversarial Vulnerabilities:
Boucher, N., Anderson, R., & Almeyda, I. (2022). Bad Characters: Imperceptible NLP Attacks. In IEEE Symposium on Security and Privacy (S&P), pp. 1987–2004.
(Demonstrated that imperceptible zero-width codepoints and homoglyphs catastrophically disrupt modern subword tokenizers). - [3] Psychophysics of Motion-Defined Perception:
Julesz, B. (1971). Foundations of Cyclopean Perception. The University of Chicago Press.
(Pioneered Random-Dot Kinematograms and proved that human cortical area V5/MT performs temporal integration to perceive shape from motion where static frames contain zero spatial correlation). - [4] Adversarial Triggers in NLP:
Wallace, E., Feng, S., Kandpal, N., Gardner, M., & Singh, S. (2019). Universal Adversarial Triggers for Attacking and Analyzing NLP. In EMNLP-IJCNLP 2019, pp. 2153–2162. - [5] Robustness & Perturbation Toolkits:
Morris, J. X., Lifland, E., Yoo, J. Y., Grigsby, J., Jin, D., & Qi, Y. (2020). TextAttack: A Framework for Adversarial Attacks, Data Augmentation, and Adversarial Training in NLP. In EMNLP 2020, pp. 119–126. - [6] Adversarial Typography & Glyph Perturbation:
Xiao, C., Cheng, C., Zheng, W., & Dong, Y. (2018). FontCode: Embedding Information in Text Documents using Glyph Perturbation. ACM Transactions on Graphics (SIGGRAPH 2018), 37(4). - [7] In-Browser Native Cryptography:
W3C Web Cryptography Working Group. (2017). Web Cryptography API - W3C Recommendation. World Wide Web Consortium.
If you found this useful, please cite this as:
Niknam, Hadi (Nov 2026). Human-Exclusive Information Channels: Cryptographic & Perceptual Obfuscation Against Large Language Models. Hadi Niknam. https://nicknam.tech.
or as a BibTeX entry:
@article{niknam2026human-exclusive-information-channels-cryptographic-perceptual-obfuscation-against-large-language-models,
title = {Human-Exclusive Information Channels: Cryptographic & Perceptual Obfuscation Against Large Language Models},
author = {Niknam, Hadi},journal = {Hadi Niknam},
year = {2026},
month = {Nov},
url = {https://nicknam.tech/blog/2026/cryptographic-text-hiding-from-llms/}
}
Enjoy Reading This Article?
Here are some more articles you might like to read next: