不可区分混淆(英语:Indistinguishability obfuscation,常作iO:1),是一种形式化定义了程式混淆的密码原语(英语:Cryptographic primitive)。白话地说,混淆隐藏了程式的内部实现,但用户仍可运行它。
最早基于具体困难性假设(英语:Computational hardness assumption),可证安全(英语:Provable security)的候选构造在2013年提出。该假设和多线性映射(英语:Cryptographic multilinear map)有关,但后来该假设被推翻了。
一系列后续工作试图将iO基于更标准的假设。贾殷(Jain)、林和萨海(英语:Amit sahai)于2020年出版的研究将iO建基于XDH假设(英语:XDH assumption)、LWE假设和LPN假设(英语:Parity_learning#Noisy_version_("Learning_Parity_with_Noise"))。此外,该构造还需要NC0(英语:NC_(complexity)#The NC hierarchy)实现的超线性延展的伪随机数生成器。直至2006,即使只考虑亚线性延展的NC0伪随机数生成器,其存在性一直是未解问题。
若不可区分混淆器存在,它们可用于海量的密码学构造里。具体地说,不可区分混淆器可用于以下的场合:
不过,iO不是万能的:例如,甚至在假设陷门排列(英语:trapdoor permutation)的情况下,都无法通过黑盒构造由iO构造出抗撞(英语:Collision resistance)的密码杂凑函数,除非允许指数级的安全性损失。