Skip to main content
Should You Recompute the Entire Tag?Authentication Methods
4 min readFor Payment Security Engineers

Should You Recompute the Entire Tag?

When your authentication system flags a data change on an untrusted server, you face a choice: pull down the entire dataset and recalculate the MAC from scratch, or find a way to verify the update without that overhead. For payment security engineers managing cardholder data environments where files change frequently, this is a practical concern that affects how you design data integrity controls.

Recent cryptographic research by Debrup Chakraborty and Avishek Majumder introduces updatable message authentication codes (UdMACs), which allow authentication tags to be updated incrementally as messages change, without recomputing the tag for the entire message. The question: should you adopt incremental authentication, or stick with traditional full-message MACs?

The Case for Full-Message Recalculation

Traditional MACs are reliable. To verify data integrity, you retrieve the complete message, run it through your MAC algorithm with your secret key, and compare the output to your stored tag. This method has withstood decades of cryptographic scrutiny.

The security model is straightforward. Your MAC protects the entire message as a single unit. There's no partial verification, no incremental state to manage, and no additional attack surface introduced by update operations. If someone tampers with any portion of your stored data, the MAC verification fails. The logic is binary and the implementation is well-understood.

For environments where data doesn't change frequently, or where datasets are small enough that full recomputation isn't a bottleneck, this approach remains practical. A transaction log that gets appended once per day doesn't benefit from incremental updates. Neither does a configuration file that changes during scheduled maintenance windows.

Your existing MAC implementations, whether HMAC-SHA256 or AES-CMAC, have been validated under FIPS 140-3. They're integrated into your key management workflows, your hardware security modules support them, and your compliance documentation references them. Introducing a new primitive means new validation cycles, new security reviews, and new operational procedures.

The Case for Incremental Authentication

The efficiency argument is compelling when you're managing large datasets that change frequently. Consider a scenario where you store encrypted cardholder data files on a cloud provider's infrastructure, with MAC tags protecting integrity. If a 10GB file gets a 1KB update, downloading the entire file to recompute the MAC introduces significant latency and bandwidth cost. For systems processing thousands of updates daily, that overhead compounds.

UdMACs address this by allowing the authentication tag to be updated with every change to the message without recomputing the tag for the entire message. The research presents two constructions: concatu and xoru, which support distinct message updates through concatenation and xor difference operations. This means you can verify that a specific change was authorized without retrieving the full dataset.

The security model for UdMACs formalizes what happens when an attacker can observe or influence update operations. This matters because your threat model changes when you introduce incremental updates. An adversary who can trigger updates might try to manipulate the tag evolution in ways that wouldn't be possible with static MACs. The formal security analysis attempts to bound these risks.

For resource-constrained environments, particularly edge devices or mobile payment terminals that need to maintain integrity over locally cached data, the computational savings are measurable. If your terminal needs to verify updates to a merchant's product catalog without pulling the entire catalog on every sync, incremental authentication becomes practical.

Where Practitioners Actually Land

Most payment security teams aren't rushing to implement UdMACs yet. The primitive is too new. It hasn't been standardized by NIST, it's not referenced in PCI DSS requirements, and there aren't production-hardened implementations in your standard cryptographic libraries.

Where incremental authentication does appear, it's typically in specialized contexts. Database systems that need to prove data integrity without full table scans use Merkle trees, which provide a different form of incremental verification. Blockchain systems use hash chains. Both approaches have been battle-tested in ways that UdMACs haven't.

The practical barrier isn't theoretical security. It's operational risk. Introducing a new cryptographic primitive means your QSAs will ask questions during your next assessment. Your incident response team needs to understand the failure modes. Your key rotation procedures need to account for the update mechanism. That's a significant investment for a problem that most teams solve by optimizing their data architecture instead.

If you're storing large files that change frequently on untrusted infrastructure, you're probably already chunking those files and computing per-chunk MACs. That gives you incremental verification without introducing a novel primitive. It's more storage overhead, but it uses proven tools.

Our Take

UdMACs solve a real problem, but they're not ready for production payment environments yet. The research establishes a formal security model and provides constructions that appear sound, but "appears sound in a research paper" and "has survived years of cryptanalytic attack" are different risk profiles.

If you're architecting a new system where incremental authentication would provide measurable benefit, the better path is to structure your data so that traditional MACs work efficiently. Split large datasets into chunks that align with your update patterns. Use content-addressable storage where each chunk gets its own MAC. Build a Merkle tree over the chunks if you need efficient proofs. These approaches use primitives that your auditors understand and your libraries already implement correctly.

Watch the UdMAC space, though. If the constructions get standardized and implementations get validated under FIPS 140-3, the calculus changes. For now, the tradeoff between theoretical efficiency and operational risk favors sticking with traditional MACs and optimizing your data architecture around them.

The question isn't whether incremental authentication is cryptographically sound. It's whether the operational complexity of deploying a new primitive is worth solving a problem you can address with proven tools and better architecture.

You Might Also Like