Overview
ULDA (Universal Linear Data Authentication) is an open family of lightweight client-side cryptographic tools for secure data handling and integrity verification — fully executed in the browser, with no server-side changes required.
The ULDA ecosystem currently includes two core libraries:
-
ULDA Core (
@zeroam/ulda) — a front-end encryption and synchronization toolkit for secure, real-time data handling. -
ULDA Signatures (
ulda-sign) — a compact signature and verification engine based on linear step signatures (ULDA-S / ULDA-X).
Together, they provide a complete framework for client-side confidentiality, data integrity, and authentic synchronization between multiple clients.
Why ULDA
ULDA was designed to bridge the gap between simple web applications and strong cryptographic security — without introducing backend complexity.
Main goals:
- 🔐 Client-side encryption using standard Web Crypto API primitives (AES-CBC + PBKDF2).
- ⚙️ Simple data model based on “master” and “content” files.
- 🔁 Real-time sync over secure WebSocket channels (
socket.io-client). - 🧩 Modular crypto layer allowing custom hash or signature algorithms via plugins or CDN.
- 🌐 Zero backend refactor — works purely on the front-end, inside browsers or Node.js.
Architecture Overview
ULDA
├── ulda-core (main SaaS library)
│ ├── AES-CBC + PBKDF2 encryption
│ ├── Master / content file model
│ ├── WebSocket real-time sync (socket.io)
│ └── TypeScript support & full API
└── ulda-sign (signature library)
├── Implements ULDA-S and ULDA-X
├── Configurable ladder parameters (N, hash, originSize)
├── Public API: New / stepUp / sign / verify
└── Extensible hash functions (built-in or external)
Relationship Between Core and Signatures
| Purpose | ULDA Core | ULDA Signatures |
|---|---|---|
| Encryption | ✅ AES-CBC (PBKDF2) | — |
| Signatures | Built-in integrity layer | S- / X-Ladders (cryptographic verification) |
| Transport | WebSocket (socket.io) | Independent or embedded |
| Extensibility | Plugin crypto utils | Custom hashers, CDN scripts |
| Environment | Browser / Node.js | Browser / Node.js |
ULDA Core handles encryption, key derivation, and synchronization.
ULDA Signatures provides step-based signature verification — proving that each new “generation” of data originates from the previous one.
The Concept of Linear Authentication
Traditional digital signatures are standalone.
ULDA introduces linear authentication — where every new signature “inherits” from the previous one, forming a verifiable chain.
Two compatible modes are defined:
- ULDA-S (Skippable) — tolerant to dropped or reordered packets; supports multi-step verification.
- ULDA-X (Strict) — compact, fast, but requires a strictly sequential channel (e.g., TLS, WebSocket).
The detailed specification is available in ULDA Manifest v1.
Documentation Structure
- Overview
- Manifest & White Papers
- ULDA Manifest v1
- White Papers (coming soon)
- ULDA SaaS (core library)
- ULDA Signatures (ulda-sign)
- Index
- Quickstart
- Concepts (S vs X)
- API
- Examples
- Changelog
- Licensing
Licensing
ULDA libraries are released under the ULDA Community License (Non-Commercial).
For commercial or SaaS use, contact legal@0am.ch to obtain a ULDA Commercial License.
Next Steps
- Read the ULDA Manifest v1 — the formal specification of ULDA-S and ULDA-X.
- Explore the ULDA SaaS (Core) library to understand data encryption and synchronization.
- Learn about ULDA Signatures and the ladder-based signature model.
- Review the Licensing terms before integrating ULDA in your project.