HomeCryptographyPath ORAM: Hiding Memory Access Patterns

🌲 Path ORAM: Hiding Memory Access Patterns

See how Path ORAM arranges encrypted data blocks in a binary tree and reshuffles them on every access, so a server watching addresses learns nothing about which data a client actually reads or writes.

Cryptography3DModerate60 FPS
path-oram-access-pattern-lab ↗ Open standalone

The simulation renders a binary tree of encrypted buckets and shows each read or write triggering a full root-to-leaf path fetch, re-encryption, and random leaf reassignment, illustrating why the observable access pattern never correlates with the actual data touched.

🔬 What It Demonstrates

The simulation renders a binary tree of encrypted buckets and shows each read or write triggering a full root-to-leaf path fetch, re-encryption, and random leaf reassignment, illustrating why the observable access pattern never correlates with the actual data touched.

🎮 How to Use

Select a logical block and choose read or write, then watch the highlighted path change on every single operation, including repeats of the same block, and inspect the stash panel to see temporarily displaced blocks.

💡 Did You Know?

Path ORAM assigns the accessed block a brand-new random leaf on every single access, so requesting the exact same block twice in a row still produces two completely unrelated paths through the tree.

⚙ Under the hood

See how Path ORAM arranges encrypted data blocks in a binary tree and reshuffles them on every access, so a server watching addresses learns nothing about which data a client actually reads or writes.

oblivious rampath oramcryptographyprivacycloud storagebinary treedata structuresside channels

3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)