🌲 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.
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.
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.
3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install