[CFRG] Re: Random-access authenticated encryption (raAE) draft

Mark Xue <irtf@mxue.org> Tue, 14 July 2026 00:10 UTC

Return-Path: <irtf@mxue.org>
X-Original-To: cfrg@mail2.ietf.org
Delivered-To: cfrg@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id C53C01162AD66 for <cfrg@mail2.ietf.org>; Mon, 13 Jul 2026 17:10:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1783987856; bh=IrKhchzTrsvaVL0mkfg6olh+yJ9xZ1FViNqFZQVlipA=; h=Date:From:To:Subject; b=pE4c1OADhQmU4hfpZIc0Ukbs2dcYMB5Hp2k3KThzD4ZeuCE6lAzBXw08/LH26CgJU Jd/2GR3FoJtk2IKwHkAEz6l4AzaYm5IwWBCmnzAEAYk37kkYWgBB+WGNWSF4WbxUX1 tGCnFCd3Y73UZVjRQj93mgwd3K4hhlbgBdJPofIE=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.799
X-Spam-Level:
X-Spam-Status: No, score=-2.799 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=mxue.org header.b="Aiq5Jtkb"; dkim=pass (2048-bit key) header.d=messagingengine.com header.b="cRcuyazD"
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bOCOIXsY46EX for <cfrg@mail2.ietf.org>; Mon, 13 Jul 2026 17:10:56 -0700 (PDT)
Received: from fhigh-b8-smtp.messagingengine.com (fhigh-b8-smtp.messagingengine.com [202.12.124.159]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 22A381162AD61 for <cfrg@irtf.org>; Mon, 13 Jul 2026 17:10:55 -0700 (PDT)
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43]) by mailfhigh.stl.internal (Postfix) with ESMTP id 65D7A7A00EF for <cfrg@irtf.org>; Mon, 13 Jul 2026 20:10:55 -0400 (EDT)
Received: from phl-imap-08 ([10.202.2.84]) by phl-compute-03.internal (MEProxy); Mon, 13 Jul 2026 20:10:55 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mxue.org; h=cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:message-id:mime-version:reply-to:subject :subject:to:to; s=fm1; t=1783987855; x=1784074255; bh=IrKhchzTrs vaVL0mkfg6olh+yJ9xZ1FViNqFZQVlipA=; b=Aiq5JtkbvRzv7Jv34Amp8KmLTA L8Ia+hpzCTBLSgHaelqxCz+ipCDMfHtQBRq8Sehu4NuM/cXmF3o7isoLGBevgRF0 x4Ir3k0f693G68/70y1Eg00wDEBMeoT412fJfoyni3mLLyQ5BAj+Vn8s+xFSNXNb H9gnkqzqxWpIUGMLnkKpau9mpuV/NvI6JHgxWeHxo6wA+hjRcM2vyWwGpWd21Rh8 r8kh5cp2E9AA/y8YK/D+aF8uynJyYOho6zezMBnsRxYlhiV7tS7EDFYUL9XpcIYj 2QyetjBlW+P9uFlGttDBEbwF4q2nOa5Hk5Y1huekMJPyrZSav2Kw6hsrLxPg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:message-id:mime-version:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1783987855; x=1784074255; bh=IrKhchzTrsvaVL0mkfg6olh+yJ9xZ1FViNq FZQVlipA=; b=cRcuyazDTg2F5G87jgPYQXYdK5ND5ylxMElB3i9QXzSvZJVyPg3 GVu7VVx4AmAzekyLvZQo8WJ6re21TfJ3DcXsmbfiqp1RyMz+qBsP0HEU7UpYlCMd C4CcPvV5s9RWQAjbeZhogropJhnPUvjicgezBP8GG+Ul6JeN9TxYgEl/GFnWmSNF WJCPlUlzrmdO1b6Lxx4JzAB80A6x6SmnRdaB/noQmYjUfIBuDMMoTJqZT4QeBlPo u6PoInaKABbfpJ4nkohI77fbDELj2bAtTiFep5pjeIQA8GzeJ78ofLQsiTMwfyn1 9NdYiDjEjyQttzJpNImoiXHDXzDR36qGS2w==
X-ME-Sender: <xms:j35VapKnC4O5rxqZ62lpqb_orgRUpJho1GTHmnJmtFdkw7dw2fqYvg> <xme:j35Vav9YqjaLw9RgqrBlU6kgJQf68_n1AIcwM_iixdeUSS02-egzHnR6IH19-y5ks 9NLh2y3Ov_nzr5gyJmbz8-H9mfx5L3MJYWNe_rK0Q-KZ4uCK5Y>
X-ME-Proxy-Cause: dmFkZTF0PAja9DWUEdhykHw0hCjlQ/OFg0uMv6n0ZgaDjB+S0vjpWFpxTcAJqUYf/rn7Kw eGGSjPXu/Id1LPlZXR48zbi/MknseqB1DAgB3AQfxxzwesZshNB4wDjH6k84e1rdwBVffo cpQ/bxCLc/AX7tUGeuPMsnCCOxZLwz39W5WR6ziwEGY/lQ/IOKJq0WluY1I2I+cHy+qAK2 d9GPF87079vHSzuqaQqTtiJakglKp8f+rZQjL6pJga7q6KoycmWO410YXnd3QZc4Z5GLcc b76Aal091hV2RANnY9kV93n93ttaYkNYCjmBBzswU720ydER1xbWy8jqaBPsuuTm5C5pdm sBOqHKWOsN/Cx7QaQGIrNQNZRLwwup8om8zqfGOsO0n/jf3RbvhXje2fnA/+artcELxusY ZHt7VuVFZ8LwNZ0hFc+8t+NDWRgKk4UX8F3me2Z36lwhoIALMoqWJCflAY61FgYVvB0M/k /Omwi2F6Dt8NuyDg3hwt6741N7HiSW7wzPNvLPsE87gdw8fqsYCZwp10WNH27ordFdNpRP qqOgYC2zzgUfQ8bMIJyLl2Tn2dBw+CEMAFbbSXiZvcmumP0tMZ/WI7tw7ZQjQL61WCrUli 9+yZCYltTDhj0AypPGd93p8m8a+v4OGIGvWwCVEIoxC1ZOxKSNSidSORu1Kw
X-ME-Proxy: <xmx:j35VausSDPSt0zoLNeKjBHTLI8UT5e0HEkYtk9o4mDfrYYTDUogpPA> <xmx:j35VaqZEZ6M-aQLSxlzlKnJs2t0lJMupOk0WPfp5l5FZcH-ChpEY7w> <xmx:j35VavbJzxNphDWnQxljdz1z6AfX8J5H7PWQlPDzJ-K1DbNtsIMs6A> <xmx:j35VauWCKQoZrAcjDbikz5PDro1x7rwVlPovMBQDKjkKonafKDXq1Q> <xmx:j35VatlsGSAxilmPlCHMDEUOV7KaklzUgO2GcvW_Y3KwLATlLOb762xs>
Feedback-ID: ic0de4b41:Fastmail
Received: by mailuser.phl.internal (Postfix, from userid 501) id 1AB722CE03BD; Mon, 13 Jul 2026 20:10:55 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
MIME-Version: 1.0
Date: Mon, 13 Jul 2026 17:10:33 -0700
From: Mark Xue <irtf@mxue.org>
To: cfrg@irtf.org
Message-Id: <5a31b705-39df-4987-b64e-2d5e0224405e@app.fastmail.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Message-ID-Hash: HPARC4SJRPGZ2BMRN2NFNKTB3MB6UFGZ
X-Message-ID-Hash: HPARC4SJRPGZ2BMRN2NFNKTB3MB6UFGZ
X-MailFrom: irtf@mxue.org
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-cfrg.irtf.org-0; header-match-cfrg.irtf.org-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [CFRG] Re: Random-access authenticated encryption (raAE) draft
List-Id: Crypto Forum Research Group <cfrg.irtf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/cfrg/LeHEKiVFOf7r9wCkFSGlX7Ucp6o>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cfrg>
List-Help: <mailto:cfrg-request@irtf.org?subject=help>
List-Owner: <mailto:cfrg-owner@irtf.org>
List-Post: <mailto:cfrg@irtf.org>
List-Subscribe: <mailto:cfrg-join@irtf.org>
List-Unsubscribe: <mailto:cfrg-leave@irtf.org>

Thanks much for this Nick. We have need of such a primitive for our end-to-end encrypted messenger, both for encryption at rest and attachment encryption in transit. I've also looked at some of the prior work as a basis for our implementation; a draft that builds on them would be preferable. We've already made some headway on a swift implementation of an earlier version of this draft.

Mark

> From: Nick Sullivan <nicholas.sullivan@gmail.com>
> Date: July 13, 2026 at 3:54:50 PM PDT
> To: CFRG <cfrg@irtf.org>
> Subject: Random-access authenticated encryption (raAE) draft
> 
> Hi all,
> 
> Writing as an author, not a chair. I've been working on a draft I want to share with the group. This is not a call for adoption, just sharing the early draft in case there's interest. Comments and reviews welcome.
> 
> The problem. Applications dealing with large encrypted objects (encrypted backups, encrypted archives, object stores) need to read any part of the object without decrypting the whole thing. They also need to verify that each part read belongs to the current object at its claimed position, without processing the entire object. Mutable objects, like encrypted file formats, encrypted disk images, and object stores that accept partial updates, also need in-place modification of any part without re-encrypting the whole. The positional and inclusion proofs should also remain valid after each modification. Take an encrypted database file or an encrypted disk image: any block is read or written by index, and a reader wants to know that the block it reads really belongs at the offset it came from in the current image, without re-hashing every block on every write. No proven security notion in the literature covers all of this under one primitive. As such, each application ends up rolling its own segmented AE layer, mostly without security proofs for the rewrite and whole-object cases.
> 
> Prior work covers pieces of the problem. CHAIN (Hoang, Reyhanitabar, Rogaway, Vizár 2015) is sequential. STREAM (same paper) supports random-access decryption of individual segments and encodes a final-segment bit for truncation detection, but has no whole-object snapshot and no in-place rewrite. Its deployed relatives (Tink Streaming AEAD, OpenPGP v2 SEIPD) are write-once streaming formats and don't expose rewrite at all. The v2 SEIPD design is itself the outcome of Efail (Poddebniak et al., USENIX 2018), where v1's whole-message integrity failed and applications acted on unauthenticated plaintext. FLOE (Fábrega, Len, Ristenpart, Rubin; ePrint 2025/2275) formalizes random-access AEAD security cleanly and gives a proven construction. This work builds on that formal foundation.
> 
> I've posted draft-sullivan-cfrg-raae-02, "Random-Access Authenticated Encryption." It covers the primitive, the security notions, the prior constructions in the space, and a concrete family of instantiations with test vectors called SEAL (Segmented Encryption and Authentication Layer), as well as a security analysis (companion paper forthcoming) and write/rewrite budgets.
> 
> The draft has two layers. raAE is the abstract primitive: the base interface and security notions come from Fábrega et al., which this document extends. SEAL is one concrete construction of raAE, parameterized by an AEAD, a KDF, and an epoch length. It has two profiles (immutable and mutable) and an optional snapshot authenticator that binds the whole segment set and updates cheaply on rewrite. A protocol that would previously have signed the whole encrypted object can sign the snapshot authenticator instead and get the same authentication scope without touching the segments. The snapshot authenticator is also not a single construction, different authenticators fit different consuming-protocol contexts. For example, settings that supply only a single CEKs and owner per object versus settings with a shared CEK (as in MLS) necessitate different authenticators.
> 
> Freshness against whole-object rollback, storage transactions, and key management are explicitly out of scope. Those belong in a consuming protocol.
> 
> The shortest path to a concrete, testable thing is to read SEAL-simple(AES-256-GCM, HKDF-SHA-256) in Appendix E, which is the degenerate case for SEAL with no rewrites or snapshot authentication and fixed legacy AEAD/KDF.
> 
> Reviews and comments on the framing, the security notions, the construction, or the scope are all useful.
> 
> Draft: https://www.ietf.org/archive/id/draft-sullivan-cfrg-raae-02.html
> 
> Best,
> Nick