BlackMind
Research
CryptographyBroadcast encryptionFormal verification

Accumulator-Indexed Broadcast Encryption (AIBE): O(1) Broadcast Encryption for Dynamic Groups via Bilinear Accumulators

O(1) broadcast encryption for dynamic groups — constant-size headers, constant-time encrypt/decrypt, and revocation with witness self-update, proven in Lean 4.

Jovonni L. PharrGeorgia Cyber Warfare Range / BlackMindMarch 2026

In brief

AIBE is a broadcast-encryption scheme for dynamic groups whose critical operations — encrypt, decrypt, and revoke — all run in constant time no matter how large the group grows. It pairs bilinear accumulators on BLS12-381 with broadcast encryption to keep headers a fixed 224 bytes and let revoked members lose future access with no message to anyone else (witness self-update), backed by a Rust implementation, a Lean 4 correctness proof, and benchmarks flat from 4 to 100,000 members.

Key results

  • Constant-time operations at every scale: encrypt ~2ms, decrypt ~1ms, and a fixed 224-byte header that stays flat from 4 to 100,000 members (benchmarks measured 1,914-2,076 microseconds encrypt, 997-1,436 microseconds decrypt).
  • O(1) across send, join, and revoke simultaneously - the first broadcast-encryption scheme to achieve constant cost on all three, versus O(N) or O(log N) for pairwise, group-rekey, and MLS/TreeKEM.
  • Non-interactive revocation via witness self-update: remaining members refresh their own witness locally in ~100 microseconds using w_i' = (w_i - w_j)/(j-i), with zero author-to-member communication.
  • Formally verified in Lean 4: 13 files, 100+ theorems, zero sorry and zero custom axioms, bridging abstract algebra to concrete BLS12-381 bounds via native_decide.
  • Concrete ~96-bit CCA2 security on BLS12-381 for groups up to 2^30 (~1 billion) members, with accumulator forgery probability below 2^-224.
  • Working implementations in Rust (28 tests), TypeScript (31 tests), and Swift (28 tests), all sharing the same algebra/accumulator/encryption/protocol module structure.

The dynamic-group problem

Encrypted group broadcasting has to satisfy five demands at once: only members can read a message, the relaying server learns nothing even with full database access, the author encrypts once rather than per-member, the scheme scales to millions, and revocation takes effect instantly without the author having to re-contact every remaining member.

No prior design hits all five. Per-member (pairwise) encryption is O(N) to send and produces O(N) headers. Group-key rotation gives O(1) sends but O(N) joins and revokes. MLS/TreeKEM improves those to O(log N). Boneh-Gentry-Waters (2005) achieves O(1) ciphertext but is a static system with no dynamic revocation. AIBE is the first to be O(1) across send, join, revoke, and header size together.

AIBE versus alternative schemes: per-post encryption cost (left) and membership-change/revocation cost (right). AIBE stays flat while pairwise and group-rekey grow linearly with group size.
Fig.AIBE versus alternative schemes: per-post encryption cost (left) and membership-change/revocation cost (right). AIBE stays flat while pairwise and group-rekey grow linearly with group size.

The construction

AIBE encodes the entire member set S into a single bilinear accumulator Acc(S) = g_1^(prod over s in S of (alpha + s)), a 48-byte point on BLS12-381 regardless of whether the group has 4 or 4 million members. The master secret alpha stays with the author; the accumulator itself stays private on the author's device, and only the verification target tau = e(Acc(S), g_2) in the target group is published. Each member i holds a witness w_i, which is the accumulator with member i's own factor removed.

To post a message, the author draws a random 256-bit post key K_p and a fresh blinding factor r, then publishes a three-element header (H_1 = g_2^r, H_1' = g_2^(alpha r), H_2 = K_p XOR mask), where the mask is derived by hashing the pairing value tau^r; the content is sealed with an AEAD under K_p. A member combines the header into g_2^(r(alpha+i)) and pairs it against their own witness. By bilinearity the (alpha+i) factors cancel, so every member independently recovers the identical pairing value e(Acc(S), g_2)^r and hence the same K_p - which is why one constant-size header decrypts for everyone.

AIBE security architecture: the platform relays ciphertext and the constant-size O(1) header but cannot decrypt; non-members receive the data but hold no valid witness.
Fig.AIBE security architecture: the platform relays ciphertext and the constant-size O(1) header but cannot decrypt; non-members receive the data but hold no valid witness.

Key properties

The headline result is that every hot-path operation is O(1). The header is exactly three header values (two G₂ points plus a 32-byte masked key) - 224 bytes - independent of group size, and encrypt and decrypt each perform a fixed amount of work. Server blindness follows from keeping Acc(S) in G_1 private and publishing only tau in the target group G_T: target-group elements cannot be fed back into a pairing, so the server, holding only tau and g_2^r, cannot reconstruct tau^r without solving a discrete log.

Revocation is where the accumulator structure pays off. When member j leaves, any remaining member i updates their own witness with the purely local computation w_i' = (w_i - w_j)/(j - i), scalar-multiplying by the inverse of (j - i). The author publishes only a revocation notice - j's ID, j's old witness encrypted under AIBE itself so the server never sees the raw G_1 value, and the new target tau' - and remaining members self-update without any direct message. The revoked witness provably fails against the new target. As a bonus, because each witness is unique it acts as an implicit fingerprint, giving inherent traitor tracing.

Header size on a log scale: AIBE's constant 224 bytes against naive per-member encryption at 48N bytes, emphasizing the linear growth of naive per-member headers, which the log scale makes visually dramatic.
Fig.Header size on a log scale: AIBE's constant 224 bytes against naive per-member encryption at 48N bytes, emphasizing the linear growth of naive per-member headers, which the log scale makes visually dramatic.

How it is assured

Security rests on the q-Strong Diffie-Hellman assumption, and the paper derives concrete bounds on BLS12-381 (128-bit security level, scalar field order above 2^254). Accumulator forgery reduces via Schwartz-Zippel to at most |S|/r, below 2^-224 for groups up to a billion. Adaptive IND-CPA is proven through dual system encryption, yielding roughly 96-bit CCA2 security at 2^30 members (the IND-CPA bound is 97-bit).

Every core property is formalized in Lean 4 with Mathlib across 13 files and 100+ theorems, with zero sorry and zero custom axiom declarations. The proofs cover pairing bilinearity, witness correctness, uniform decryption (all members recover the same key), invalid-witness rejection, the cleared-denominator self-update identity, revocation forward secrecy, collusion structure, and a nine-property litmus test. Concrete bounds are checked by native_decide in a BLS12381 module that bridges the abstract algebra to the real field parameters.

Implementation and benchmarks

AIBE is implemented in three languages sharing the same algebra/accumulator/encryption/protocol layout: Rust (arkworks + chacha20poly1305, 28 tests), TypeScript (@noble/curves + AES-256-GCM via Web Crypto, 31 tests), and Swift (native BLS12-381 pairing + ChaChaPoly, 28 tests targeting iOS, macOS, and server-side Swift).

Benchmarks confirm flat scaling from 4 to 100,000 members: encrypt stays in the 1,914-2,076 microsecond band, decrypt around 1 millisecond (997-1,436 microseconds), header size a constant 224 bytes, witness self-update near 100 microseconds, and revocation roughly 210 microseconds for groups of 100 or more, rising to 307 microseconds at N=4. The five-user litmus test (Alice authoring; Bob, Charlie, Diana, Eve as members; Frank a non-member) passes all nine checks, including revoking Eve, the three remaining members self-updating without Alice, and the server being unable to decrypt.

The main caveat is that batch witness issuance is O(N), but this is a one-time setup cost off the per-message critical path - in the incremental-growth model each new member is a single O(1) addition. Other limitations: BLS12-381 pairings are not post-quantum, and like any end-to-end scheme AIBE cannot stop a member from re-sharing decrypted plaintext, which traitor tracing only deters.

All AIBE operations versus follower count from N=4 to 100,000: encrypt, decrypt, self-update, revoke, and add-follower lines are all flat, confirming O(1) scaling.
Fig.All AIBE operations versus follower count from N=4 to 100,000: encrypt, decrypt, self-update, revoke, and add-follower lines are all flat, confirming O(1) scaling.

Abstract

We present Accumulator-Indexed Broadcast Encryption (AIBE), a cryptographic scheme that enables encrypted broadcasting to a dynamic group where only authorized members can decrypt content, the server learns nothing, and all critical operations run in O(1) time regardless of group size. AIBE combines bilinear accumulators on BLS12-381 with broadcast encryption to achieve constant-size headers (224 bytes), constant-time encrypt and decrypt (~2ms and ~1ms), and O(1) revocation with witness self-update — revoked members lose access to future posts without any communication from the author to remaining members. We provide a working Rust implementation, a formal Lean 4 proof of correctness, and benchmarks demonstrating flat scaling from 4 to 100,000 members.